C指針和陣列混淆
回答
我想這取決於你使用的編譯器,但答案可能不是。
順便說一句,您可以通過比較兩個字符的地址來輕鬆地進行測試。如果它們不同,那麼:不。
無論如何,你不應該依賴於這一點;)
兩者都具有相同的字符值。
...但您應該假設已分配兩個物理上分離的「HELLO」字符串。 – 2011-03-17 09:17:11
他們將讀取的是一個char大小的內存塊,每個var指向的內存地址之後,它們位於每個開始之後的2個字符大小的步驟(此處爲2個字節)。這恰好是'L'我的例子,但這不是在內存中的相同地址。
所以是的,在給出的例子中,他們將獲取相同的字符。
你確定它不是相同的內存地址? :) – 2010-03-29 13:05:04
感謝所有.. – 2010-03-29 13:15:37
@Nick D:它不能是相同的內存地址。 'a'是包含字符串文字「HELLO」副本的數組,而'p'是指向字符串文字「HELLO」的指針。 – 2010-03-29 13:20:49
是的。
P [2]等於*(P + 2)
HELLO
^
*(p+2)
應注意的是,第一 「HELLO」 可能會被存儲在可寫存儲器頁,而第二個 「HELLO」可能會存儲在只讀頁面中。這與您所在的編譯器/平臺非常密切相關。
在這兩種情況下,他們將獲取的'L'
。但是,它不是一樣的'L'
。他們存儲在不同的地方。這意味着如果你比較他們的指針,他們將不會是平等的。
- 1. 陣列/指針混淆
- 2. C++向量,列表,指針和混淆
- 3. 指針混淆C++
- 4. 指針混淆 - C++
- 5. 指針與C++混淆
- 6. C++指針參考混淆
- 7. C++中的指針混淆
- 8. C++中的指針混淆
- 9. 混淆指針
- 10. 指針混淆
- 11. 指針混淆
- 12. 指針混淆
- 13. 指針混淆
- 14. 指針混淆指針
- 15. C++,向量,指針和對象混淆
- 16. C++字符串和指針混淆
- 17. C指針和malloc混淆EXC_BAD_ACCESS
- 18. 混淆的typedef和指針用C
- 19. C結構和指針混淆
- 20. 指針和對象混淆(Objective-C)
- 21. 混淆引用和指針
- 22. 混淆Qsort和指針
- 23. 指針和數組混淆
- 24. 混淆陣列
- 25. 簡單的C指針混淆
- 26. 尋找指針混淆在c
- 27. 混淆指針減量使用C
- 28. 2D陣列列陣混淆
- 29. 關於指針指針的混淆
- 30. int指針在C中的矩陣 - 內存分配混淆
是的。 __________ – kennytm 2010-03-29 13:01:12
你是指內存中的價值或地址? – ereOn 2010-03-29 13:06:13