포인터에서
int *a;
int b=3;
a=&b;
printf("%d",*a);
출력 : 3
이 때는 a가 a의 주소값이고 *a가 a가 가리키는 값을 나타내는 거잖아요
근데 왜
char *a;
a= "abcd";
printf("%s",a)
printf("%d",*a)
출력 : abcd 97
왜 여기서는 a가 a가 가리키는 값인 abcd를 출력하고 *a가 주소값을 출력하나요?
왜 위의 경우랑 반대로 작동하는거죠?
포인터에서
int *a;
int b=3;
a=&b;
printf("%d",*a);
출력 : 3
이 때는 a가 a의 주소값이고 *a가 a가 가리키는 값을 나타내는 거잖아요
근데 왜
char *a;
a= "abcd";
printf("%s",a)
printf("%d",*a)
출력 : abcd 97
왜 여기서는 a가 a가 가리키는 값인 abcd를 출력하고 *a가 주소값을 출력하나요?
왜 위의 경우랑 반대로 작동하는거죠?
%s의 기능 - dc App
%s 가 있는 라인에서 a는 a의 주소값아닌가요? 어떻게 문자열이출력되는거죠?
printf라는 함수가 %s를 쓰면 알아서 문자열 출력해줌 - dc App
%c로 한번 출력해보셈 - dc App
97은 주소값이 아니고 a의 ascii 값이다 - dc App
%d 할때는 * 붙여놨잖아 주소값이 아니라 해당 주소값의 데이터를 읽은거고 두번째도 위댓글과 마찬가지로 a 의값인디 그게 ascii값으로 97이 a 이다
주소값을 보고싶으면 *a가 아니라 a를 찍어야한다
*a는 a[0] - dc App