포인터에서 *a &a a 의 차이점좀 알려주세요
엄지
2023.04.01
정수형으로
int i[2]={1,2}, *a;
a=&i
printf(%d %d %d,*a,&a,a);
했을때는 1, 주소값 , 주소값
문자열으로
char *a=asdf;
printf(%s,a); - asdf // 여기서 왜 a로 해야 출력이 되는지도 좀..
printf(%s,*a); - 오류
printf(%s,&a); - 오류
가 나는 이유가 뭐죠?
그리고 출력할때 *a &a a 의 차이점좀 설명해 주시고요
int *i=1
이 왜 안되는지도 좀..
-
박애교
printf() 함수에서 형식화문자열 %s 는 문자열의 포인터를 인수로 받습니다. printf() 함수의 사용법을 검색해 보시면 많은 도움이 되실듯...
-
다솜
일단 int *a로 선언되었으면 정수형 포인터죠. 그러면 *a일 경우 a가 가리키는 변수의 값을 뜻하고, a일 경우 a의 값, 여기선 i의 주소값이 되겠군요. 그리고 &a는 a의 주소값이 되겠습니다.
또한, char* a = \asdf\; 에서 a는 \asdf\