int a = 12, b = 30;
int array[2];
int **ptr = array;
array[0] = &a;
array[1] = &b;
했을 때에는 *ptr이 &a의 값과 같아서 printf로는 주소값이 찍히잖아
그러면
char *array[2];
char **ptr = array;
array[0] = "i hate you.";
array[1] = "abcdefg";
라는 코드가 있을 때
printf("%s ₩n", *ptr); 라 할 때 왜 그 %s는 array[0]이 가리키는 문자열을 출력함?
주소 찍혀야 정상아닌가?
%s라는건 문자열로 해석하라는 건데, 주소값을 받음. c에서 문자열을 표현하는 방법이 문자열의 시작 주소부터 \0, 즉 NULL문자가 나올때까지 읽는거야
%s가 주소값을 받아서, 시작주소부터 null 있는곳까지 쭉 출력하는 포맷인거야?
이게 맞다면 이해되었다 고마워
null 만나면 멈춤. - dc App