今天筆者發現了一個很嚴肅的問題
memset函數不能給數組賦值爲1
查閱資料後發現,memset函數是逐個字節填充,計算機中爲補碼,memset函數只能填充爲全0或者全1。
說明,memset函數只能給數組賦值全0,或者全-1.
#include<string.h>
int main(){
int a[101];
memset(a,1,sizeof(a));
for(int i=1;i<=100;i++)
cout<<a[i]<<endl;
return 0;
}
筆者發現打印出來的不是全1,而是不爲0的正整數(16843009)!