포인터
: 메모리의 주소를 구해 출력해주는 프로그램
- 메모리: 데이터를 넣고 꺼내 쓰는 공간
#include<stdio.h>
int main(void)
{
int a = 10, b = 15, total;
double avg;
int* pa, * pb; //포인터 선언
int* pt = &total;
double* pg = &avg;
pa = &a; //포인터 pa에 a의 주소 대입(10 대입)
pb = &b; //포인터 pb에 b의 주소 대입(15 대입)
*pt = *pa + *pb; //a와 b의 값을 더한 것(pt=25)
*pg = *pt / 2.0; //total 값을 2로 나눈 것
printf("두 정수의 값 : %d, %d\n", *pa, *pb);
printf("두 정수의 합 : %d\n", *pt);
printf("두 정수의 평균 : %.1lf\n", *pg);
return 0;
}
#include<stdio.h>
int main(void)
{
int a = 10, b = 20;
const int* pa = &a;
printf("변수 a 값 : %d\n", *pa);
pa = &b;
printf("변수 b 값 : %d\n", *pa);
pa = &a;
a = 20;
printf("변수 a 값 : %d\n", *pa);
return 0;
}
포인터: 가르키는 변수의 값을 바꿀 수 없다는 의미
const
를 사용하면 *pa=20;
로 쓰면 오류가 난다.
*pa=20;
-> pa=&a;
int a,b; //일반 변수 선언
int *p; //포인터 선언
p=&a; //p가 a를 가리키도록 설정
p=&b; //p가 변수 b를 가리키도록 바꿈