課程
/后端開發
/C
/Linux C語言指針與內存
int array[2]
array[3]=100;//申請數組應該是兩個值,為什么在這不給報錯?
2015-10-24
源自:Linux C語言指針與內存 5-2
正在回答
編譯器不會對數組訪問越界進行檢查。
因為數組和指針是有密切聯系的,很多時候編譯器無法確定你訪問的位置是否在合理的范圍內,所以編譯器就干脆對此不檢查了。 ?實踐中,有經驗的程序員經常活用這種數組和指針的關系。
當然,你這兩行代碼確實是錯的,對array[3]的訪問確實越界了。雖然能編譯通過,但運行時可能會發生錯誤。
香濃一筆 提問者
舉報
指針-C語言的核心,代領大家對c語言有更加深刻的理解
1 回答數組的逆序排列,為什么不對啊
1 回答為什么會輸出數組的值啊
1 回答數組指針++
2 回答數組長度與數組賦值的問題
2 回答為什么地址一樣數值不一樣?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-10-24
編譯器不會對數組訪問越界進行檢查。
因為數組和指針是有密切聯系的,很多時候編譯器無法確定你訪問的位置是否在合理的范圍內,所以編譯器就干脆對此不檢查了。 ?實踐中,有經驗的程序員經常活用這種數組和指針的關系。
當然,你這兩行代碼確實是錯的,對array[3]的訪問確實越界了。雖然能編譯通過,但運行時可能會發生錯誤。