- 相關推薦
在C語言中什么是指針和數組等價
在C語言中對數組和指針的困惑多數都來自這句話,
在C語言中什么是指針和數組等價
。說數組和指針“等價”不表示它們相同, 甚至也不能互換。它的意思是說數組和指針的算法定義可以用指針方便的訪問數組或者模擬數組。特別地,等價的基礎來自這個關鍵定義:
一個T 的數組類型的左值如果出現在表達式中會蛻變?yōu)橐粋指向數組第一個成員的指針(除了三種例外情況); 結果指針的類型是T的指針。
這就是說, 一旦數組出現在表達式中, 編譯器會隱式地生成一個指向數組第一個成員地指針, 就像程序員寫出了&a[0] 一樣,
資料共享平臺
《在C語言中什么是指針和數組等價》(http://www.stanzs.com)。例外的情況是, 數組為sizeof 或&操作符的操作數, 或者為字符數組的字符串初始值。作為這個這個定義的后果, 編譯器并那么不嚴格區(qū)分數組下標操作符和指針。在形如a[i] 的表達式中, 根據上邊的規(guī)則, 數組蛻化為指針然后按照指針變量的方式如p[i] 那樣尋址, 如問題6.2 所述, 盡管最終的內存訪問并不一樣。如果你把數組地址賦給指針:
p = a;
那么p[3] 和a[3] 將會訪問同樣的成員。
【在C語言中什么是指針和數組等價】相關文章:
畢業(yè)留言中文短句09-17
愛國名言中國06-25
C/C++筆試題目大全08-22
茄子和什么食物相克10-02
牛肉和什么食物相克07-17
蝦和什么食物相克06-17
提子和什么不能共吃08-07
考研高等數學強化:等價無窮小替換06-10
高中好朋友畢業(yè)留言中文10-08
調檔需要什么材料和方法09-26