c 포인터변수

C & Python 2015. 6. 28. 18:37

C에서 포인터변수란 값(사용할 데이터)이 저장되어 있는 메모리 주소를 저장하고 있는 변수?

다음 코드를 실행 시켜보면

#include <stdio.h>
#include <stdlib.h>

int main(void) {
	char **pTwo, *pOne, c='A';

	pOne = &c;
	pTwo = &pOne;

	printf("pTwo address : %p\n\n", &pTwo);

	printf("pTwo   value : %p\n", pTwo);
	printf("pOne address : %p\n\n", &pOne);

	printf("pOne   value : %p\n", pOne);
	printf("   c address : %p\n\n", &c);

	printf("**pTwo value : %c\n", **pTwo);
	printf("*pOne  value : %c\n", *pOne);
	printf("   c   value : %c\n\n", c);

	return EXIT_SUCCESS;
}

포인터 변수에 값을 저장할 때,
포인터 변수의 값(메모리 주소)을 출력할 때,
포인터 변수가 가리키는 위치(메모리 주소)의 실제 값(사용할 데이터)을 출력할 때,
각각 어떻게 사용되고 있는지 주목하면서
아래 결과를 보자

pTwo address : 0x7fffbfdb8d80

pTwo   value : 0x7fffbfdb8d88
pOne address : 0x7fffbfdb8d88

pOne   value : 0x7fffbfdb8d77
   c address : 0x7fffbfdb8d77

**pTwo value : A
*pOne  value : A
   c   value : A

'C & Python' 카테고리의 다른 글

c 컴파일 과정  (0) 2015.07.11
python 2.7 한글 출력  (0) 2015.06.28
: