int a[4] = {1, 2, 3, 4}가 있다고 하겠습니다.
1. 배열의 이름인 a는 배열의 첫번째 원소의 주소로 해석됩니다.
그래서 p를 배열의 이름인 a를 포인터로 사용하기위해서는
첫번째의 원소의 타입이 int이므로 int형 포인터로 코드를 작성해야합니다.
int a[4] = {1, 2, 3, 4};
int *p = a;
2. &a는 배열의 전체 타입의 주소로 해석됩니다.
-> &a는 배열의 전체 크기가 타입의 주소로 해석됩니다.
&a는 (int[4])가 하나의 타입으로 되는 포인터로 해석합니다.
그래서 이곳에서는 타입이 int[4]이기 때문에
int a[4] = {1,2,3,4};
int (*p)[4] = &a;
로 작성해주어야한다.
'C' 카테고리의 다른 글
2진수를 C언어에서 출력하는 여러가지 방법들 [C] (0) | 2022.05.25 |
---|---|
순차탐색과 이진탐색 [C] (0) | 2022.05.23 |
분할정복법에서의 정렬, 퀵정렬과 합병정렬 [C] (0) | 2022.05.23 |
링크드리스트로 이진트리를 구현하기 [C] (0) | 2022.05.23 |
이진트리를 만들어 탐색해보자! [C] (0) | 2022.05.23 |