1
A
回答
1
p
是一個指向int
的指針,*p
將是變量的值。在這種情況下,a
。只是爲了簡單起見,您可以將&
視爲the address of
,*
作爲the content of pointer
,因爲這篇文章The 5-minute Guide to C Pointers指出。
記得a
和p
是唯一的名字,它們代表一個變量。假設a
的地址是1024
(這幾乎不是真實的情況)。他們的關係如下圖所示。 a
的值是5
,當我們使用p = &a
時,我們將a
的地址,即1024
分配給p
。 *p
將檢索值the address p pointer to
,這是您正在尋找的值:5
。
pic http://cizixs.u.qiniudn.com/pointer
如果你要打印的淡水河谷,@unwind給出了答案。
Here是一個教程,可能會澄清c指針給你。
5
*p
不會「打印」任何東西;這只是一個表達式,它引用指針,併產生任何指向它的值。
您可以打印:
printf("*p=%d\n", *p);
,它會在你的程序在a
打印5
因爲p
點,並a
值5
。
%d
很重要,它告訴預期值爲int
,並將其格式化爲打印字符串。
您還可以打印指針本身:
printf("p is %p, a is at %p\n", p, (void *) &a);
這將打印相同的地址兩次。格式說明符%p
用於打印地址。
1
p是一個指向int的指針。這意味着它可以指向一個地址,其中將存儲一個int。
寫作
p = &a
你設置的指針指向在整數的地址被存儲。
當您嘗試打印* p時,您將獲得存儲在指針p指向的地址中的值。所以你會得到5.
請記住,運算符&
返回一個變量的地址。所以&a
將返回變量a
的地址。另外,當你想獲得存儲在地址中的變量值時,如果你有一個指向這個地址的指針,你可以使用解引用運算符*
。因此,*p
返回存儲在p
指向的地址中的值。
0
p = &a;
p是指向a的指針。即p保持地址a
。和
*p
會給出一個值。由於&
用於獲取變量的地址,因此*
用於取消引用指針,即獲取指針所指向的變量的值。
相關問題
- 1. 指針值C空指針
- 2. 指向C中的指針的指針
- 3. 指針的大小,指向C中指針的指針
- 4. 指針指針(C++)
- 5. 指針vs指針指針C
- 6. C++中的指針分配。 (指針的指針到指針位於LHS)
- 7. C++ - 指向數組的指針 - 指針
- 8. C++指向指針的指針
- 9. 指向C++指針的指針
- 10. 指針指針數組中的指針的值
- 11. Objective-C中指針的指針
- 12. C指針隊列中的指針
- 13. C++中函數指針的指針
- 14. 在C++中爲指針指定指針
- 15. 將值指針傳遞給c函數中的指針值
- 16. C/C++指針數組VS指針的指針
- 17. C - 釋放指針指針
- 18. 指針在C指針
- 19. C++約指針+非指針
- 20. **指針和*指針C
- 21. JNI&C - 指針指針
- 22. C指針雙指針
- 23. C++矢量指針指針
- 24. C指針指針問題
- 25. C指針,指針,字符
- 26. C指針指針數組
- 27. Memoryleak指針指針,C++
- 28. Delphi中指針的指針
- 29. 指針的指針的指針
- 30. 由雙指針指向的指針值丟失(c代碼)
功課? :D ... – egig
親自嘗試! –
試着在大學!有疑問.. – user154522