国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

C語言為什么不設(shè)置數(shù)組下標(biāo)有效性檢查

2019-11-14 09:19:34
字體:
供稿:網(wǎng)友

轉(zhuǎn):

 最早的C編譯器并不檢查下標(biāo),而最新的編譯器依然不對(duì)它進(jìn)行檢查。這項(xiàng)任務(wù)之所以很困難,是因?yàn)橄聵?biāo)引用可以作為任意的指針,而不僅僅是數(shù)組名。

    作用于指針的下標(biāo)引用的有效性既依賴于該指針當(dāng)時(shí)恰好指向什么內(nèi)容,也依賴于下標(biāo)的值。結(jié)果,C的下標(biāo)檢查所涉及的開銷比你開始想象的要多。編譯器必須在程序中插入指令,證實(shí)下標(biāo)的結(jié)果所引用的元素和指針表達(dá)式所指向的元素屬于同一個(gè)數(shù)組。這個(gè)比較操作需要程序中所有數(shù)組的位置和長(zhǎng)度方面的信息,這將占用一些空間。當(dāng)程序運(yùn)行時(shí),這些信息必須進(jìn)行更新,以反映自動(dòng)和動(dòng)態(tài)分配的數(shù)組,這又將占用一定的時(shí)間。因此,即使是那些提供了下標(biāo)檢查的編譯器通常也會(huì)提供一些開關(guān),允許你去掉下標(biāo)檢查。

    在C語言中,數(shù)組就是指針,他只保存了地址。這就造成無法檢查是否越界,但也給指針和數(shù)組的交互操作提供極大的便利性。

   C 的數(shù)組根本就是一個(gè)指針的語法trick而已。 a[3] 就是   *(a+3),而此時(shí)a 就是一個(gè)地址,當(dāng)然沒有所謂邊界限制。a[3] 等效于*(a+3)等效于*(3+a) 等效于3[a];

原:http://blog.chinaunix.net/uid-24237502-id-203487.html


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 鲁甸县| 扎鲁特旗| 阿荣旗| 农安县| 杭州市| 怀化市| 始兴县| 玛沁县| 阜阳市| 渭南市| 广河县| 张家界市| 措美县| 津南区| 台北县| 锡林浩特市| 毕节市| 黄平县| 荔浦县| 云霄县| 临高县| 绵竹市| 平潭县| 临湘市| 霸州市| 蒲江县| 天峻县| 蓬安县| 札达县| 冀州市| 林芝县| 申扎县| 姚安县| 广平县| 太谷县| 沾化县| 卢湾区| 陈巴尔虎旗| 绵阳市| 甘洛县| 仁化县|