在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/C  C++/ 為什么memset()輸出這個(gè)?

為什么memset()輸出這個(gè)?

int main()
{

int ia1[50];
memset(ia1,5,50*sizeof(int));
cout<<ia1[10];

system("pause");
return 0;

}

clipboard.png??

回答
編輯回答
獨(dú)特范

只有0和-1才能這樣初始化吧

2017年2月17日 10:03
編輯回答
夢(mèng)一場(chǎng)

因?yàn)閙emset是按字節(jié)的.
具體過(guò)程樓上說(shuō)了, 稍微做點(diǎn)補(bǔ)充, 除了0, -1也是可以都置成-1

2018年3月17日 08:09
編輯回答
兔寶寶

因?yàn)槟惆衙總€(gè)字節(jié)設(shè)置成了 5,也就是二進(jìn)制的 101
ia1[10] 或任何一個(gè) ia1[i] 都是 4 字節(jié)組成的整數(shù),int 占 4 字節(jié)。
所以 ia1[10] 即為 00000101 00000101 00000101 00000101(二進(jìn)制)。
就等于 2^26 + 2^24 + 2^18 + 2^16 + 2^10 + 2^8 + 5,這里 x^y 表示 x 的 y 次方。
你用計(jì)算機(jī)摁一下,精確的等于 84215045!
教訓(xùn)是,memset 只該用來(lái)清空一片內(nèi)存,即永遠(yuǎn)設(shè) 0。

2017年4月22日 18:37