我應該知道這一點,但我沒有,我認爲它可能是我基礎知識的一個重大缺口,所以我想我應該問問專家。爲什麼在C++中聲明字符串時大小的差異?
考慮:
char s1[] = { 'M', 'y', 'W', 'o', 'r', 'd' };
char s2[] = "MyWord";
cout << strlen(s1)<<endl;
cout << strlen(s2)<<endl;
cout << sizeof(s1)<<endl;
cout << sizeof(s2)<<endl;
爲什麼作爲s1
聲明時是strlen
9但s2
申報時爲6?額外3來自哪裏,它缺少一個空終止字符?
我知道sizeof(s2)
比sizeof(s2)
大1個字節,因爲s2會自動添加空字符?
請溫柔,TIA!
嘿,s2的大小是否意味着終止字符*** \ 0 ***是一個字節?謝謝 –
是的,在C和C++中'char'總是1個字節。 – cnicutar