課程
/后端開發
/C
/Linux C語言指針與內存
int?array[2];?在課本上就是告訴我們數組大小是2個,array[0]和array[1]。 可是在視頻中,array[3]出現了,不管是編譯還是運行居然都沒問題。為什么? 到底哪里錯了?
2015-09-19
源自:Linux C語言指針與內存 5-2
正在回答
那個是老師初期不小心寫錯了,4-6這一節的視頻里面已經紅字標出了是筆誤了。
編譯器沒有錯。
編譯器不會對數組訪問越界進行檢查,且由于數組與指針的密切關系,這樣寫也許是程序員有意為之,所以也檢查不了。
這就是C語言的特色,也可以說是缺點:它賦予程序員足夠的自由,但需要程序員清楚自己在干什么。
海納川 提問者
舉報
指針-C語言的核心,代領大家對c語言有更加深刻的理解
1 回答數組array[2]越界了
2 回答數組長度與數組賦值的問題
2 回答關于數組指針引用問題
1 回答數組指針++
1 回答數組申請?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-06-03
那個是老師初期不小心寫錯了,4-6這一節的視頻里面已經紅字標出了是筆誤了。
2015-09-19
編譯器沒有錯。
編譯器不會對數組訪問越界進行檢查,且由于數組與指針的密切關系,這樣寫也許是程序員有意為之,所以也檢查不了。
這就是C語言的特色,也可以說是缺點:它賦予程序員足夠的自由,但需要程序員清楚自己在干什么。