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