본문 바로가기

프로그래밍/C언어

[C언어] 포인터

반응형

포인터 (pointer)

: 메모리의 주소값을 저장하는 변수, 포인터 변수 

  • 포인터 변수는 주소값을 저장하고 주소값은 모두 정수로 저장

 

예제1

int main(void) {

	int i = 10;
	int *p;
	p = &i;

	printf("%u - %d\n", &i, i);
	printf("%u - %u - %d\n", &p, p, *p);

	return 0;
}

 

 

예제2 

포인터를 통한 값 변경

int main(void) {

	int i = 10;
	int *p;

	p = &i;
	printf("i = %d\n", i);

	*p = 20; // 포인터를 통해 값을 변경
	printf("i = %d\n", i);

	return 0;
}

 

 

예제3

포인터 사용지 주의할 점

  • 포인터 타입과 변수 타입이 일치해야 함 
    포인터 타입은 저장하는 내용이 아니고, 저장된 주소에 저장된 데이터 타입이다. 
int main(void) {

	int i;
	double *pd;

	pd = &i;
	*pd = 36.5; // int형에 double형을 저장하려 해서 오류 발생 !

	return 0;
}

 

 

반응형