포인터는 C언어가 Low레벌 언어의 특성을 지니게 해준 녀석이다. 왜냐하면 포인터를 이용하면 메모리에 직접 접근이 가능하기 때문이다.
포인터 변수란 메모리의 주소 값을 저장하기 위한 변수이다.
* 포인터 변수와 & 연산자에 대해서 알아보자!
int main(void)
{
int num = 7;
int * pnum.; //포인터 변수 pnum의 선언
pnum = # //num의 주소 값을 포인터 변수 pnum에 저장
}
* pnum = 20;
printf("%d", *pnum);
위의 코드를 해석하면 다음과 같다.
"포인터 변수 pnum이 가리키는 메모리 공간인 변수 num에 정수 20을 저장해라!"
"포인터 변수 pnum이 가리키는 메모리 공간인 변수 num에 저장된 값을 출력해라!"
예제를 통해서 더 이해해보자.
#include<stdio.h>
int main(void)
{
int num1 = 100, num2 = 200;
int* pnum;
pnum = &num1; //포인터 pnum이 num1을 가리킴
(*pnum) += 30; //num1+=30과 동일
pnum = &num2; //포인터 pnum이 이제 num2를 가리킴
(*pnum) -= 30; //num2-=30;과 동일
printf("num1:%d, num2:%d \n", num1, num2);
return 0;
}
결과값은
#include<stdio.h>
int main(void)
{
int num = 10;
int* ptr1 = #
int* ptr2 = ptr1;
(*ptr1)++;
(*ptr2)++;
printf("%d \n", num);
return 0;
}
결과값은 12이다.
'coding > C언어' 카테고리의 다른 글
C프로그래밍 배열 이해하기. 극장 좌석 예약하기 프로그램 (0) | 2021.11.18 |
---|---|
C프로그래밍 이해하기. 삼각함수 그리기 (0) | 2021.11.18 |
C프로그래밍 함수 이해하기. 섭씨 온도를 화씨 온도로, 그 반대로 변환하는 프로그램 작성. 난수함수로 동전던지기 게임 만들기; (0) | 2021.11.18 |
C프로그래밍 포인터 이해2 자율주행자동차 센서에서 장애물까지의 거리 (0) | 2021.11.16 |
C 프로그래밍 배열 이해하기 max min 구하기 (0) | 2021.11.16 |