1. 배열이 1차원배열인가? 아니면 2차원 배열인가?
--> 1차원 배열인 경우
1) 배열안에는 어떤 type형 데이터들이 들어가는가?
2) 해당 type 뒤에 *를 붙여서 변수를 선언해준다.
type * ptr;
ex)
int arr[5];
1) 배열 안에는 int형 데이터들이 들어간다.
--> int * ptr;
--> 2차원 배열인 경우
1) 배열안에는 어떤 type형 데이터들이 들어가는가?
2) 해당 type 뒤에 *를 붙여서 변수를 선언하되, (*변수) 이렇게 소괄호를 쳐준다.
3) 해당 2차원 배열의 가로 길이를 뒤에 써준다.
type (*ptr)[row];
ex)
int arr[5][3];
1) 배열 안에는 int형 데이터들이 들어간다.
3) arr 배열의 가로길이는 3이다.
--> int (*ptr)[3];
ex)
int * arr[5][3];
1) 배열 안에는 int*형 데이터들이 들어간다.
3) arr 배열의 가로길이는 3이다.
--> int* (*ptr)[3];
(*ptr)이렇게 괄호를 쳐주어야 하는 이유는 괄호를 안칠경우 포인터 배열의 선언과 중복되기 때문이다.
만약 int (*ptr)[3] 대신 int * ptr[3]; 이렇게 쓸 경우
int형 포인터 배열의 선언이 되어버리기 때문에 구분을 위해서 괄호를 쳐주어야 한다.
'C > 공개글' 카테고리의 다른 글
signed와 unsigned로 명시하는 것의 차이? (0) | 2013.07.16 |
---|---|
configure, make, make install (0) | 2013.05.13 |
static 함수 (0) | 2013.05.03 |
open() 으로 파일권한 설정하는법 (0) | 2013.05.01 |
리틀엔디안에 따른 순서의 문제 (0) | 2013.04.14 |