문자열 포인터 배열
, 민 현빈님이 작성589페이지 45.4 예제 코드 중에서
char *sArr[10]={NULL, };
문자열 포인터 배열을 선언한다고 하는데
도대체 개념을 어떻게 받아들여야 할지 헷갈리네요
배열, 문자열 포인터는 책에서 개념이 나오는데
문자열 포인터 배열은 배열이랑 문자열 포인터 이 두 개를 mix한걸로 봐야 하나요?
도대체 개념이 어떻게 되는 건가요ㅜㅜㅜ
아무리 생각해도 지금 제가 머릿속에서 잘못 생각 하는 건가 .. 떠오르지가 않아요 ㅠㅠ
Re: 문자열 포인터 배열
, 도장_ 관리자님이 작성char *sArr[10]={NULL, };
char ch;
이면 ch는 char로 선언하는 것입니다.
char *ch;
이면 ch는 pointer to char로 선언하는 것입니다.
char ch[];
이면 ch는 array of char로 선언하는 것입니다.
char *ch[];
이면 ch는 array of pointer to char로 선언하는 것입니다.
char *ch[10];
이면 ch는 array 10 of pointer to char로 선언하는 것입니다.
영어로 읽는 법입니다.
pointer to char를 10개 담을 수 있는 배열이라는 뜻입니다.
포럼 상단 고정에 있는 시각화 사이트를 이용해서 단계별로 실행하면서 이해하세요.
단계별로 실행하면 다음과 같은 그림을 얻을 수 있습니다.
sArr 배열에는 s1에서 각 단어가 시작하는 위치만 포인터로 가리키는 것을 알 수 있습니다.
C 언어는 문자열을 \0 널 문자까지만 출력합니다.
printf("%s\n", sArr[i]);
를 실행하면 단어만 출력하는 이유죠.
상단 고정에 좋은 내용 많으니 참고하세요. 시각화 사이트도 이용하세요.