포인터
때때로 우리는 가변이 기억에서 어디 거주하는지 알고 싶다. 포인터는 특정한 가치가 있는 가변에는의 주소를 포함한다. 포인터를 선언할 때, 에스테리스크는 포인터 이름의 직전 둔다.
가변이 저장되는 기억 장소의 주소는 변수 이름의 앞에 앰퍼샌드를 두어서 찾아낼 수 있다.
int num; /* 정상적인 정변수 */
int *numPtr; /* 정변수에 포인터 */
뒤에 오는 보기는 저 가변을 기념하여 변수 값 및 주소를 인쇄한다.
printf("The value %d is stored at address %X\n",
num, &num);
포인터 numPtr에 숫자 가변의 주소를 할당하기 위하여는, 당신은 다음 들어지는 예에서 것과 같이 숫자 변하기 쉬운 것의 주소를 할당한다:
numPtr = #
저장되는 무슨이 numPtr에 의해를 가르킨 주소에 알아내기 위하여는, 가변은 참조를 배제될 필요가 있다. 참조를 배제는 에스테리스크로 포인터가로 선언되었다 달성된다.
printf("The value %d is stored at address %X\n",
*numPtr, numPtr);
프로그램에 있는 모든 가변은 기억에서 거주한다. 부동 소수점 가변 x를 위한 32 비트 컴퓨터에 기억의 컴파일러 예비 4 바이트가 그것에서, 그 때 가치 6.5를 둔 요구의 밑에 발표되는 성명.
float x;
x = 6.5;
얻어지는 & 그것의 이름 그러므로 &x의 앞에 x.의 주소가 C 더 멀리 가고는 가변을 무엇이든 가변을 기념하여 주소 위치가 통신수를 두어 인 때, 다른 가변의 주소를 포함하는 포인터이라고 칭하는 정의하는 것을 허용하는 저희가 1개의 단계. 오히려 우리는 포인터가 다른 가변을 가르킨ㄴ다고 말해서 좋다. 예를 들면:
float x;
float* px;
x = 6.5;
px = &x;
px를 유형 부유물의 목표에 포인터이기 위하여 정의하고, x.의 주소와 동등한 놓는다. 따라서, x의 가치가 *px에 의하여 언급한다:
|