이 함수에 대해 설명을 부탁드립니다
연자두
2023.04.01
함수 질문설명을 부탁드립니다질문 내용 :
#includestdio.hint main(void){ int array[10] = {1,2,3,4,5,6,7,8,9}; double *p; p = (double *)&array[1]; p++; printf(%d,*((int *)(p+1) ));}
전처리단계랑 변수선언까지는 이해가 가는데 그 밑부터 이해가안가는군요
p에 대입되는값이랑 printf로 출력되는 인자가 이해가 안갑니다, 설명부탁드려요
-
god
int 형을 4byte 라고 가정하고 설명하겠습니다. (int 를 2byte라고 가정하면 결과가 달라집니다.)
p = (double *)&array[1];
array[1] 은 배열에서 2의 인덱스입니다.
이것의 주소를 double형 포인터인 p에 (double *)케스팅 연산자사용 대입합니다.
그럼 현재 p는 array[1]을 가리키게 되겠죠? (2를 가리킵니다.)
여기서 p++; 를 실행하면 어디로 갈까요??
p++ 라는건 쉽게 p+ typ