포인터 배열
글쓴이: question / 작성시간: 수, 2017/01/25 - 9:05오전
#include
void main(){
char data[2][2];
char (*p)[2] = data;
printf("data : %x\n", data);
printf("*p : %x\n", *p);
}
data : 배열 시작 주소 값
*p : 배열 시작 주소 값
결과 : data == *p
#include
void main(){
short int data[2][2];
int *p = data;
printf("data : %x\n", data);
printf("*p : %x\n", *p);
}
data : 배열 시작 주소 값
*p : ?
결과 : data ≠ *p
왜 이런 건가요?
Forums:
#include <stdio.h>
http://ideone.com/HovwVT
답을 달면...
답을 달면...
질문을 그대로 남겨주실 것인가요?
https://kldp.org/user/83358/track
그렇군요.
그렇군요.
글 내용을 지워버리는것은 답글 달아준사람들에 대한 예의가 아니네요.
data와 p는 주소이므로 %x 대신 %p를 씁니다
(char(*)[2])p: char 배열(size=2) 포인터 (주소)
*(char(*)[2])p: char 배열(size=2) (주소)
(int*)p: int 포인터 (주소)
*(int*)p: int 포인터 (값)
※ (char(*)[2])p는 '포인터 배열'이 아니라 '배열 포인터'랍니다.
댓글 달기