C에서 배열은 동일한 유형의 요소를 저장하는 데 사용되는 반면 포인터는 변수의 주소를 저장하는 주소 변수입니다. 이제 배열 변수에는 포인터가 가리킬 수 있는 주소가 있고 포인터를 사용하여 배열을 탐색할 수 있습니다.r 배열에 포인터를 사용하는 이점은 두 가지입니다. 첫째, 동적으로 할당된 배열의 주소를 포인터에 저장하고 둘째 함수에 배열을 전달합니다. 다음은 배열 사용과 배열 포인터 사용의 차이점입니다.
-
sizeof() 연산자 array의 경우 array의 크기를 출력하고 pointer의 경우 int의 크기를 출력합니다.
-
과제 배열 변수에는 다른 변수의 주소를 할당할 수 없지만 포인터는 사용할 수 있습니다.
-
첫 번째 값 첫 번째 인덱스 값은 포인터 값과 동일합니다. 예를 들어, array[0] ==*p.
-
반복 배열 요소는 []를 사용하여 인덱스를 사용하여 탐색할 수 있고 포인터는 포인터 산술을 사용하여 배열 요소에 대한 액세스를 제공할 수 있습니다. 예를 들어, array[2] ==*(p+2)
예(C)
#includevoid printElement(char* q, int index){ printf("인덱스(%d)의 요소:%c\n", index, *(q+index));} int main() { char arr[] ={'A', 'B', 'C'}; 문자* p =arr; printf("arr[]의 크기:%d\n", sizeof(arr)); printf("p의 크기:%d\n", sizeof(p)); printf("arr을 사용하는 첫 번째 요소는 %c\n", arr[0]); printf("p를 사용하는 첫 번째 요소:%c\n", *p); printf("arr을 사용하는 두 번째 요소:%c\n", arr[1]); printf("p를 사용하는 두 번째 요소:%c\n", *(p+1)); 인쇄요소(p, 2); 반환 0;}
출력
Arr[]의 크기:3p의 크기:8arr을 사용하는 첫 번째 요소는 다음과 같습니다. Arr을 사용하는 첫 번째 요소는 다음과 같습니다. Arr을 사용하는 두 번째 요소는 다음과 같습니다. Bp를 사용하는 두 번째 요소는 다음과 같습니다.