---------------------------------------------------
포인터란
point가 점이고
er인 행위자가 붙으면
가리키는 것
가리키는 자
레이저 포인터 라는 것을 생각하면 됩니다.
C언어에서
포인터란 주소를 저장하는 변수를 말합니다.
---------------------------------------------------
이전 까지는
변수에 일반적인 데이터인
Int값, double값 char값 들이 들어갔다면
포인터 변수에는
주소가 저장됩니다.
---------------------------------------------------
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번째 줄에서
//double형 1차원 포인터 ptr에
//num의 주소를 대입합니다.
---------------------------------------------------
9번째 10번째 줄에서
ptr의 값과
ptr이 가리키는 곳의 값을 출력하고 있습니다.
---------------------------------------------------
실행결과는 다음과 같습니다.
---------------------------------------------------
'C_프로그래밍' 카테고리의 다른 글
[C 프로그래밍] 34장. 포인터와 배열 (0) | 2020.04.06 |
---|---|
[C 프로그래밍] 33장. 포인터 연산 (0) | 2020.04.06 |
[C 프로그래밍] 31장. 2차원 배열 (0) | 2020.04.06 |
[C 프로그래밍] 30장. 1차원 배열 (0) | 2020.04.05 |
[C 프로그래밍] 29장. 재귀함수 (0) | 2020.04.05 |