我只知道一個情況下 當傳遞給函數的數組它們衰變到一個pointer.Can任何人闡述的所有案件中,數組衰變爲指針。
3
A
回答
12
Ç2011 6.3.2.1 3:
除了當它是的sizeof運算符的操作數時, _Alignof操作者,或一元&操作者,或者是字符串文字用於初始化一個數組, 「類型」數組的表達式被轉換爲類型爲「指針的指針」 類型「指向數組對象的初始元素,而不是左值。
換句話說,陣列通常衰變爲指針。該標準列出了當它們不是時的情況。
有人可能會認爲,當您將數組用作下標(如a[3]
)時,它們可以用作數組。但是,這裏發生的實際上是:
a
被轉換爲指針。- 下標操作符作用於指針和下標以產生指定對象的左值。 (特別是,
a[3]
被評價爲*((a)+(3))
,即,a
被轉換爲指針,3被添加到指針,並且*算子被應用於。)
相關問題
- 1. 爲什麼數組衰減到模板函數中的指針
- 2. 由於數組衰減爲指針,爲什麼我不能應用const?
- 3. 爲什麼我的指數衰減不起作用?
- 4. 數組沒有衰減到指針的例外?
- 5. 有沒有辦法避免數組到指針的衰減?
- 6. 默認情況下m_pMainWnd指針指向的是什麼?
- 7. Verilog中的指數衰減
- 8. 爲什麼C++數組衰減不會發生?
- 9. 爲什麼我可以使用make_unique創建具有衰減數組指針的unique_ptr?
- 10. 一個指數衰減圖的兩個衰減率
- 11. 爲什麼我必須在這種情況下傳遞指針指針
- 12. 爲什麼說一個2維數組是一個「指向指針的指針?」
- 13. 爲什麼int * []衰減爲int **而不是int [] []?
- 14. 爲什麼在這種情況下需要指針?
- 15. C - 爲什麼指針指針與指向數組的指針不同?
- 16. 什麼是指向指針的指針?
- 17. Python的指數衰減大熊貓DataFrame
- 18. 在純虛函數的衰減中,「= 0」是什麼意思?
- 19. 由數組到指針的衰減存儲中的編譯器生成的指針在哪裏?
- 20. 什麼是指向x個整數的數組的指針?
- 21. 非捕獲通用lambdas衰減到函數指針?
- 22. 什麼是函數指針?
- 23. 這個指針數組指向什麼?
- 24. 爲什麼指向一個指針與指向數組的指針不兼容?
- 25. 爲什麼指向char的指針指針是最新的?
- 26. 指針指針的意義是什麼?
- 27. 指針指針的語法是什麼?
- 28. 默認情況下函數指針是否爲NULL?
- 29. 指向指針數組的指針是?
- 30. 爲什麼不能使用指向char指針的指針而不是char指針數組?
此** **具有要某個地方的某種東西。 –
@ RichardJ.RossIII我不認爲這是重複的,在這裏OP要求提供所有案例的列表,我沒有在那裏看到一個。 –
這不是我知道的任何問題的重複。除非您有充分的理由,否則請停止投票結束。這是一個合法而且很好的問題。 –