포인터 조작과 출제 패턴(2. 포인터 증가/감소, 이중 포인터) char a[]="Hello"; int b[]={1, 2, 3, 4, 5}; char *ptr_a = a; printf("%c\n", *ptr_a); 여기에서 배열이 가르키는 첫번째 요소 "H"를 출력한다는 것은 이해했습니다. 하지만 그다음 ptr_a++; 해당 문장은 증감식으로 값을 +1하는 것이 아니라 포인터 +1을 하여 다음 주소의 값을 지칭한다고 하는데 ptr_a++; 이것이 포인터 1 증가하는 것이면 값을 1 증가하는 것을 표현하려면 어떻게 해야하나요?
포인터의 개념과 활용1. 메모리 주소에 접근하자) 21:52 int arr[] = {1, 2, 3, 4, 5} 일 때 printf("%d\n", *arr);은 기본적으로 배열 인덱스 첫번째 값을 지칭하여 값이 1이 나오는 것을 이했습니다. 다만, printf("%d\n", arr) 이라면 값이 어떻게 출력되나요?
질문을 작성하기 전에 아래 내용을 꼭 확인해주세요. 질문을 올릴 때는 이 안내문을 모두 지우고, 질문 내용만 작성해주시면 됩니다. 질문 작성 방법 질문은 동영상 강의 화면 오른쪽의 [커뮤니티] 버튼 을 통해 남겨주세요. 커뮤니티를 통해 질문해주셔야 어떤 강좌에서 나온 질문인지 확인할 수 있습니다 . 질문할 때는 영상의 몇 분 몇 초 구간 인지 함께 적어주세요. 예: 12분 35초 부분에서 ~가 이해되지 않습니다. 질문을 올리기 전에 기존 질문 게시판을 먼저 확인해주세요 . 이미 다른 수강생이 같은 내용을 질문했을 수 있습니다. 답변이 어려운 질문 아래에 해당하는 질문은 답변드리기 어렵습니다. 학교 과제, 타 강사의 코드 등 외부 수업 자료에 대한 질문 제가 다루는 커리큘럼 범위를 벗어난 이론 질문 지나치게 세부적인 컴퓨터 이론 질문 시험 출제 가능성이 낮거나, 출제되더라도 비중이 매우 낮은 암기성 내용 예: 서브넷 마스크 계산처럼 외울 내용은 많지만 실제 출제 비중이 낮은 주제 좋은 질문 예시 3강 12분 35초에서 설명하신 반복문 조건식이 이해되지 않습니다. 왜 i < 10으로 작성하나요? 5강 08분 10초에서 나온 코드 실행 결과가 제 환경에서는 다르게 나옵니다. 아래는 제가 작성한 코드입니다. 정확한 강의 위치와 질문 내용을 함께 남겨주시면 더 빠르고 정확하게 답변드릴 수 있습니다.
char str2[] = "World"; *ptr_b = str2; printf("%c\n", ptr_a[1]); 이부분은 이해가 계속 안되고 있어서 질문을 드립니다. 앞에서 **ptr_b = &ptr_a;를 했기 때문에 ptr_b가 가지고 있는 값은 ptr_a의 주소입니다. 그래서 만약 ptr_a의 주소가 30000이면 ptr_b의 값은 30000이 저장되고 즉, ptr_b가 ptr_a를 가리키게 되는 것입니다. 그 상태에서 *ptr_b = str2;를 하게되면 ptr_b가 가르키는 주소는 ptr_a이고 그 값은 기존 'H'가 있는 1001이 저장되어 있었지만 갱신되어서 'W'의 주소값이 ptr_a에 저장된다고 이해를 했습니다. 근데 어떻게 *ptr_b = str2;를 했는데 *ptr_b의 값인 30000이 'W'의 주소값으로 바뀌는게 아니고 ptr_b가 가리키고 있는 주소인 ptr_a의 값인 'H'가 'W'로 바뀌는 것입니까? 그리고 *ptr_b = str2; 말고 ptr_b = str2;과 **ptr_b = str2;도 해봤는데 에러가 나던데 그 이유는 무엇입니까?