char a[]=”xyz”,b[]={‘x’,’y’,’z’};
3 回答
已采納

Chendroc
TA貢獻2條經驗 獲得超0個贊
????????char?a[]?=?"xyz"; char?b1[]?=?{'x',?'y',?'z'}; char?b2[]?=?{'x',?'y',?'z',?'\0'}; cout?<<?strlen(a)?<<?endl; cout?<<?strlen(b1)?<<?endl; cout?<<?strlen(b2)?<<?endl; cout?<<?sizeof(a)/sizeof(a[0])?<<?endl; cout?<<?sizeof(b1)/sizeof(b1[0])?<<?endl; cout?<<?sizeof(b2)/sizeof(b2[0])?<<?endl;
因為系統只認'\0'為字符串的結束符,所以b1的那種寫法會造成系統認為你未完成輸入,所以會多給b1一些空間。
根據自己的需求選擇要用strlen或sizeof,字符串像b1那樣賦值要記得最后加個'\0'。
- 3 回答
- 0 關注
- 2364 瀏覽
添加回答
舉報
0/150
提交
取消