JINTBEAT Design Life

C언어 - 포인터와 배열 본문

🖥️ - C language

C언어 - 포인터와 배열

jintbeat_design 2025. 5. 11. 23:47
반응형

 

%p는 포인터(주소)를 출력할 때 사용하고, 0x로 시작하는 16진수 주소를 반환한다. 포인터 변수에만 사용해야 한다.

 

위의 코드를 실행했을 때, 출력 결과를 보면 int형 배열요소간 주소 값의 차이가 4byte임을 알 수 있다.

 

또한 "배열의 이름은 배열의 시작 주소 값을 의미하고, 그 형태는 값의 저장이 불가능한 상수이다"

 

배열의 이름도 포인터이기 때문에, 배열의 이름을 피연산자로 하는 *연산(포인터 연산)이 가능하다.

 

ex) *pnum = 20; // pnum이 가리키는 변수에 20을 저장

 

[ code ]

 

[실행 결과]

 

💡 배열의 이름도 포인터라는 사실을 알 수 있다.

 

포인터를 배열의 이름처럼 사용할 수 도 있다.

- 배열의 이름과 포인터 변수는 변수냐, 상수냐의 특성적 차이가 있을 뿐, 둘 다 포인터이기 때문에 포인터 변수로 할 수 있는 연산은 배열의 이름으로도 할 수 있고, 배열의 이름으로 할 수 있는 연산은 포인터 변수로도 할 수 있다.

 

 

덧붙이면, 

 

ptr[0] 과 *(ptr + 0)은 동일한 표현이다. 

 

- ptr + 1 = ptr이 가리키는 타입의 1개 크기만큼 이동

- ptr[i] = *(ptr + i)와 동일, 타입 크기 고려

 

타입에 따라 주소 증가량이 다르다 : char : 1B, int : 4B, double : 8B (보통의 경우)

 

 

 

 

 

 

 

 

 

 

 

 

반응형

'🖥️ - C language' 카테고리의 다른 글

C언어 - 포인터 배열  (0) 2025.05.12
C언어 - 포인터 연산  (0) 2025.05.12
C언어 - 포인터  (0) 2025.05.10
C언어 - 포인터의 포인터  (0) 2025.05.09
C언어 - Struct와 -> 연산자  (0) 2025.05.09