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
Posted by huammmm1
,