23:46 부분 포인터 관련 질문
22:14초의 코드에서 %s arr[0][0]의 의미는 포인터 강의에서 배운 바로는 %s는 가리키고 있는 주소의 첫번째 값부터 널문자를 만날때까지 출력한다라고 배워서 Hello를 출력하는 것을 이해했었습니다 하지만 23:46부분에서 포인터를 사용할때는 arr[0][0][0]을 출력할때는 Hello중 H를 가리키는 주소를 가지고 있는건가요? 그럼 arr[0][0]과 같은 값을 가리키고 있는건데 제가 잘못 알고 있는건지 궁급합니다
답변 2
0
안녕하세요, 질문에 답변드립니다.
질문 속의 문장) 22:14초의 코드에서 %s arr[0][0]의 의미는 포인터 강의에서 배운 바로는 %s는 가리키고 있는 주소의 첫번째 값부터 널문자를 만날때까지 출력한다라고 배워서 Hello를 출력하는 것을 이해했었습니다.
-> 네 맞습니다. 첫 번째 배열은 {"Hello", "World"}까지 간 것이고 그 다음에는 "Hello"까지 갔으니 %s로 모두 출력하는 것입니다.
여기서 기억하셔야 할 것이 있습니다. 본질적으로 우리가 정의한 "Hello"는 무엇인가요?
'문자'들이 모여있는 배열입니다. 이 자체도 당연히 인덱스로 접근할 수 있을 것입니다.
배열(Array)이니까요.
문자로 된 배열은 인덱스로도, 포인터로도 접근할 수 있습니다.
애초에 배열이라는 것 자체가 우리가 앞서 배운 것처럼 메모리 주소를 죽 정렬되어 위치한 것 뿐입니다.
C언어는 이 2가지 개념이 혼재된 프로그래밍 언어입니다.
Hello까지 갔으니 여기에서 [0]을 접근하면 'H'를 꺼내옵니다.
그것을 문자 1개로 출력해야하니 %c로 받아야 합니다.
Hello 그 자체는 배열이지만, 인덱스로 접근하기 때문에 값으로 인식하시면 됩니다.
그 외에 더 헷갈리게 생각하실 필요 없습니다.
0
안녕하세요, 인프런 AI 인턴입니다. 진우님.
포인터와 문자열 출력에 대한 C 언어 개념이 혼란스러울 수 있는 부분에 대해 설명해드리겠습니다. printf("%s", arr[0][0]);에서 %s는 해당 메모리 주소에서 시작해 널 문자를 만날 때까지 문자열을 출력합니다. 이는 arr[0][0]이 문자열의 처음을 가리키고 있는 주소라는 의미이며, “Hello”와 같은 문자열 전체를 출력할 수 있는 이유입니다.
23:46의 경우, arr[0][0][0]는 배열 또는 포인터의 첫 번째 문자를 직접 참조합니다. H는 “Hello” 문자열의 첫 번째 문자이므로, arr[0][0][0]는 H를 가리키며, 해당 값만 출력하면 단일 문자 H가 됩니다. arr[0][0]은 H가 포함된 문자열의 시작 주소를 지칭하고 있으므로 이 부분에서 혼란이 있는 것일 수 있습니다.
더 많은 정보를 이해하려면 유사한 질문과 답변을 참고해 보시기 바랍니다:
위 링크들은 포인터와 문자열 출력을 보다 구체적으로 이해하는 데 도움이 될 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
26년2회 실기기출은 언제쯤...
0
46
2
이론 공부법 요약본 버전 업데이트 문의
0
35
2
정처기 필기 준비할때 이 이론을 다시 외워도 될까요?
0
57
2
조건 반복문 질문: for 문 ?
0
66
1
정처기 26-2회. 9번 질문드립니다!
0
85
1
이론 보면서 질문이 있습니다.
0
82
2
정보처리기사 실기 26년 2회 SRT 스케줄링 문제 단위 질문
0
93
2
유튜브(정보처리기사 실기 | 26년 2회 기출문제 코드 해설)
0
153
2
262 정처기 실기 C언어코딩
0
50
1
정보처리기사 262 실기 Hash(해시) 질문
0
85
2
static 변수 질문입니다.
0
64
2
파이썬 4강 질문입니다.
0
73
2
모의고사 1회 3번문제
0
95
3
41강 30:10
0
69
2
이론 공부법 질문 있습니다.
0
95
2
부모의 생성자 관련 질문
0
70
2
시험지 문제에 필기해도 되나요?
0
92
3
41강 11:23
0
61
2
4강파이썬 질문입니다
0
58
2
try-catch 핸들러명
0
71
2
36강 3:48
0
70
2
35강 18:27
0
69
2
자식 코드 내 super() 생략
0
63
2
출력질문
0
80
2





