본문 바로가기
C언어/배열

[C언어] 배열 명과 포인터의 차이

by bigpicture 2022. 7. 20.
반응형

아래와 같이 배열을 정의합시다. 

int ar[3]={1,2,3};


배열 명 ar에는 배열의 첫번째 요소 ar[1] 의 주소가 입력됩니다. 주소가 입력되었으니 일종의 포인터 역할을 하는 것입니다. 

아래와 같이 배열의 이름을 포인터변수에 입력할 수도 있습니다. 

int *p=ar;


p와 ar에는 ar[1] 의 주소라는 같은 값이 입력되어 있습니다. 

이때 둘의 차이는 무엇일까요?

1. ar에 sizeof 를 적용하면 배열의 크기가 출력되지만, p는 포인터 하나의 크기가 출력됨.

2. ar에 입력된 값은 변경이 불가능함. p에 입력된 값은 변경 가능. 

반응형

댓글