2차원 배열 이름의 포인터 형
- 2차원 배열의 이름이 더블 포인터 형이라는 오해를 절대로 하지 말라!
배열 포인터 변수
|
주의! '배열 포인터'와 '포인터 배열'을 혼동하지 말자!
int * whoA[4]; // 포인터 배열 int (*whoB)[4]; // 배열 포인터 |
whoA는 int형 포인터 변수로 이뤄진 int형 포인터 배열 선언이고,
whoB는 가로길이가 4인 int형 2차원 배열을 가리키는 용도의 포인터 변수 선언이다.
2차원 배열을 함수의 인자로 전달하기
int main(void) { int arr1[2][7]; double arr2[4][5] SimpleFunc(arr1, arr2); }
//arr1의 주소값을 전달받을 수 있는 매개 변수 이름을 parr1, //arr2의 주소값을 전달받을 수 있는 매개 변수 이름을 parr2라 하자. //SimpleFunc 함수가 반환형이 void라고 가정하고 정의하면
void SimpleFunc(int (*parr1)[7], double (*parr2)[5]){···············} //또는 void SimpleFunc(int parr1[][7], double parr2[][5]){···············} //로 정의 할 수 있다. |
2차원 배열에서도 arr[i]와 *(arr+i)는 같다.
arr[i] == *(arr+i)
int arr[3][2]={{1,2},{3,4},{5,6}};
arr[2][1] = 4; (*(arr+2))[1] = 4; *(arr[2]+1) = 4; *(*(arr+2)+1) = 4; 위의 네개의 식은 모두 같은 식이다. |
- 윤성우 저, 열혈강의 C프로그래밍 中 -
'Programming Study > C' 카테고리의 다른 글
문자와 문자열 관련 함수 (0) | 2014.09.04 |
---|---|
함수 포인터와 void 포인터 (0) | 2014.09.03 |
포인터의 포인터 (0) | 2014.09.03 |
다차원 배열 (0) | 2014.09.03 |
포인터와 함수 (0) | 2014.09.02 |