내가 화면에 인쇄 된 각각의 값은 다음 코드에 의해 무엇을 의미하는지 이해하는 데 필요한 C.에 안돼서 :C 포인터의 "** & ptr"과 "2 ** ptr"의 의미는 무엇입니까?
#include<stdio.h>
int main()
{
int x = 10;
int *ptr = &x;
printf("%d %d %d\n", *ptr,**&ptr, 2**ptr);
return 0;
}
출력 (GCC) : 여기
10 10 20
, 변수 x
및 ptr
을 가리켜 x
변수를 가리 킵니다. 따라서 *ptr
의 인쇄 된 값은 x
입니다. 그러나 **&ptr
및 2**ptr
의 값을 이해할 수 없습니다.
미리 감사드립니다.
첫 번째 10은 ptr의 내용입니다 (그리고 ptr은 x의 adr입니다) 그래서 x의 내용입니다 ... 두 번째 것은 ptr의 adr을 얻습니다. 그것의 내용, * = 당신은 또한 x 인 ptr의 내용을 다시 얻는다. 마지막으로 * ptr에 2를 곱하면 * ptr은 다시 x 내용이됩니다. –
'* ptr '이 무엇인지 이해하면 아마도'2 * * ptr '이 의미있는 형식인지 이해할 수있을 것입니다. (두 번''* ptr'입니다.) – Ryan
이러한 수치는 유용합니다. [포인터의 "역 참조"는 무엇을 의미합니까?] (https://stackoverflow.com/questions/4955198/what-does-dereferencing-a-pointer -mean) 및 [참조 및 의미없는 참조]의 의미 (https://stackoverflow.com/questions/14224831/meaning-of-referencing-and-dereferencing) –