작성
·
239
답변 2
1
1
안녕하세요! 잘 이해하고 계신 것 같습니다.
다시 설명드리자면 Line3의
*ptr = 8;
* 은 간접 참조 연산자가 맞습니다.
이 간접 참조 연산자를 사용하려면, 피연산자가 포인터 변수여야 하고,
Line2에서 사용한 *는 포인터 변수를 만드는 역할입니다.
// 띄어쓰기에 상관 없이 모두 동일한 선언입니다.
int* ptr;
int * ptr;
int *ptr;
추가로, 포인터 변수의 크기는 동일 운영체제 하에서 모두 같습니다.
(32bit OS: 4byte, 64bit OS: 8byte)
int* i_ptr;
double* d_ptr;
printf(sizeof(i_ptr)); // 8 (64bit OS 기준)
printf(sizeof(d_ptr)); // 8 (64bit OS 기준)
선언 시 *를 두번 붙이면 이중 포인터가 됩니다.
(세번, 네번 사용하여 삼중포인터, 사중포인터도 가능합니다.)
int** double_pointer;
감사합니다 :)