[C 언어 기초] 포인터와 배열의 관계에 대해서


[C 언어 기초] 포인터와 배열의 관계에 대해서

이번에는 포인터와 배열의 관계에 대해서 학습해 보자. "사실 배열 타입으로 선언된 변수의 이름도 포인터의 일종이다. 그래서 여기서 중요한 것은 '배열이름의 포인터 형(type)'을 이해하는 것이다"... 라고 책에는 설명되어 있었지만 정보를 조사해 보면서 이는 완전히 틀린 설명으로 나왔다. 배열의 이름이 의미하는 내용 위에서 언급했듯이 "배열의 이름은 포인터이다. 단, 그 데이터 값을 바꿀 수 없는 '상수 형태의 포인터'를 의미한다"... 라고 책에서는 설명이 되어 있지만 따로 정보를 조사해 보니 이는 완전 틀린 설명이다. 게다가 decay에 관한 설명이 전혀 없었는데 이에 대한 내용은 다음과 같다. '배열'이 포인터인 것이 아니라 배열은 배열이고 포인터는 포인터일 뿐인데 '배열의 이름'이 포인터로 변환되어 동작하는 것 뿐이다. 즉, 배열과 포인터는 다른 타입이고 컴파일러의 관점에서도 다르게 처리한다. 'Array Decay(Array to Pointer Decay)'는 배열이 암시...


#C언어 #메모리공간 #배열 #배열의이름 #주소값 #포인터

원문링크 : [C 언어 기초] 포인터와 배열의 관계에 대해서