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

首頁 > 學院 > 開發設計 > 正文

C語言為什么不設置數組下標有效性檢查

2019-11-11 07:47:47
字體:
來源:轉載
供稿:網友

轉:

 最早的C編譯器并不檢查下標,而最新的編譯器依然不對它進行檢查。這項任務之所以很困難,是因為下標引用可以作為任意的指針,而不僅僅是數組名。

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

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

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

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


上一篇:Unity Shader 進度條

下一篇:2017.2.5 day 4

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黎平县| 大渡口区| 巴彦淖尔市| 宁化县| 靖安县| 大竹县| 民乐县| 嘉定区| 竹溪县| 湘潭市| 肥城市| 兴义市| 滦南县| 高清| 米林县| 鹿泉市| 琼结县| 修武县| 泗阳县| 岳普湖县| 怀集县| 冷水江市| 万荣县| 麻城市| 贵南县| 新安县| 平果县| 平南县| 武陟县| 天门市| 巴东县| 界首市| 天气| 聂荣县| 乌鲁木齐县| 两当县| 兴义市| 肇东市| 称多县| 建宁县| 金堂县|