갑자기 궁금한점.
민트맛캔디
오늘 14장 배우다 궁금한게 떠올랐는데요
int* p; int p[];하고는 같다고
intp[]형식으로는 배열만선언한다고 배운것같은데;
int * p[5]이건 배열임?포인터임?
워닝한개뜨던데;
-
지우
처음에 가장 혼동스러운 부분인 포인터 배열과 배열 포인터에 관한 문제이군요
int p[]; 에서 p는 배열의 첫번째 주소를 저장하는 배열 포인터 이고
int * p[5] 에서 p는 int* 형을 5개 저장 할 수 있는 포인터 배열 입니다. -
핫핑크
포인터 배열....원리로 따진다면 배열이든 구조체든 원래는 다 포인터라고 들었습니다.C언어 만든 사람이 편의를 위해 배열을 만들고 구초제로 만들었다고 하네요.
-
마루나
#include stdio.h
void main()
{
\tint (*p_to_a)[5] = 0;
\tint *a_of_p[5] = {0,};
\tprintf( \size of int (*)[5] : %d\\n\ -
튼동
int (*p)[5] // *p : pointer to , int [5] : int형 자료 5개의 배열
// pointer to int[5] : 포인터
int *p[5] // p : array of , int *[5] : int*형 자료 다섯개
// array of int* with size 5 : 배열
sizeof( name ); 으로 확인을 해 보세요
sizeof( int (*)[5] ) 와 sizeof( int *[5] ) 의 크기에서 차이가 보일 -
돌심보
수다님에게 한 표.
-
레이
배열 아닌가요? 포인터를 데이터로 가지는 배열요.
int형 데이터의 주소를 가리키는 포인터를 5개로 가지는 배열. -
옆집꼬마야
포인터 입니다.
포인터연산시 20바이트(4*5)씩 이동하는 포인터죠.
int p[] 는 매개변수 선언시에만 허용해 줍니다.