第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

c++數(shù)組越界不報錯,是因為將數(shù)組當(dāng)指針處理嗎?

c++數(shù)組越界不報錯,是因為將數(shù)組當(dāng)指針處理嗎?

C++
四季花海 2018-09-24 18:07:48
int array[ 3 ] = { 1, 2, 3 } ;std::cout << array[3] << std::endl;std::cout << array[4] << std::endl;std::cout << array[100] << std::endl;上面的代碼輸出為0-858993460-8589934600-858993460沒有報錯是因為直接將 array[3]當(dāng)做*(array+3)處理嗎?那為什么array[3],array[4]輸出結(jié)果相同?
查看完整描述

1 回答

?
阿晨1998

TA貢獻(xiàn)2037條經(jīng)驗 獲得超6個贊

沒有報錯是因為直接將array[3]當(dāng)做*(array+3)處理嗎?

可以這么理解。以C++的尿性來看,這樣最簡單,最快,也方便各種魔幻用法。檢測越界這種事應(yīng)該交給庫,或者更高級的語言。

那為什么array[3]array[4]輸出結(jié)果相同?

Visual C++ 編譯器會在調(diào)試模式下把未初始化的內(nèi)存用0xCC填充。如果輸出字符串,就是喜聞樂見的燙燙燙。如果輸出int32,就是-858993460。

[...new Uint8Array(Int32Array.of(-858993460).buffer)].map(e => e.toString(16))// <- ["cc", "cc", "cc", "cc"]

也可以搜索“補碼在線計算器”自己驗證。


查看完整回答
反對 回復(fù) 2018-09-24
  • 1 回答
  • 0 關(guān)注
  • 896 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號