본문 바로가기
C_프로그래밍

[C 프로그래밍] 32장. 포인터

by 팔공산호랑이 2020. 4. 6.

---------------------------------------------------

포인터란

point가 점이고

er인 행위자가 붙으면

가리키는 것

가리키는 자

레이저 포인터 라는 것을 생각하면 됩니다.

C언어에서

포인터란 주소를 저장하는 변수를 말합니다.

---------------------------------------------------

이전 까지는

변수에 일반적인 데이터인

Int, doublechar값 들이 들어갔다면

포인터 변수에는

주소가 저장됩니다.

---------------------------------------------------

Int* ptr=#

Int형 포인터 변수 ptr을 선언하고

num변수의 주소를 저장하는 것입니다.

---------------------------------------------------

포인터 변수에

주소를 담게 되면

포인터 변수가 주소를 가리킨다고 표현할수 있습니다.

왜냐하면 주소를 담고 있으므로 그 변수에 찾아 갈 수 있기 때문입니다.

우리가 친구의 집 주소를 알면

친구를 찾아갈수 있는것과 비슷합니다.

---------------------------------------------------

ptr의 값을 출력하면

ptr들어있는것은 num의 주소 이므로

num의 값인 10이 출력됩니다.

*ptr의 값을 출력하면

*ptr

ptr이 가리키는 곳의 값을 참조한 것입니다.

ptr앞에 붙은 *

처음 포인터를 선언할때 썼던 * 과는 다릅니다.

이것은 참조 연산자 라고 합니다.

---------------------------------------------------

예제 코드를 보면

---------------------------------------------------

5번재 줄에서 int 형 변수를 선언하고

7번째 줄에서

int형 포인터 변수 ptr

num변수의 주소를 저장하고 있습니다.

---------------------------------------------------

 

9번째 줄에서

int형 포인터 변수 ptr

주소 형태, 즉 포인터 형태인 %p형태로 출력 해주고 있습니다.

10번째 줄에서

int형 포인터 변수 ptr 앞에

*()붙인것을 출력 하고 있는데

*ptr

포인터 변수 ptr을 참조하는 것이 됩니다.

, num변수의 값이 출력됩니다.

 

주소 형태, 즉 포인터 형태인 %p형태로 출력 해주고 있습니다.

---------------------------------------------------

실행결과는 다음과 같습니다.

포인터 ptr 값 자체를 출력하면 주소가 출력되지만

포인터에 참조연산자인 *을 붙여서

*ptr을 출력하면 포인터 ptr이 가리키는 곳의 값이 출력됩니다.

---------------------------------------------------

예제 코드가 있습니다.

여기선 double 형 포인터 변수를 사용하고 있습니다.

---------------------------------------------------

7번째 줄에서

//double1차원 포인터 ptr

//num의 주소를 대입합니다.

---------------------------------------------------

9번째 10번째 줄에서

ptr의 값과

ptr이 가리키는 곳의 값을 출력하고 있습니다.

---------------------------------------------------

실행결과는 다음과 같습니다.

---------------------------------------------------