[C]포인터

suyeon·2022년 8월 25일
1

C

목록 보기
8/8
post-thumbnail

포인터

: 메모리의 주소를 구해 출력해주는 프로그램

  • 메모리: 데이터를 넣고 꺼내 쓰는 공간
  • 포인터를 사용하는 이유: 임베디드 프로그래밍을 할 때 직접 접근하는 경우나 동적 할당한 메모리를 사용하는 경우에는 포인터가 반드시 필요
#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;
}

포인터에 const 사용

#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를 가리키도록 바꿈
profile
📖개발블로그📖

0개의 댓글