Car*_*rum 22
C字符串以空值终止.该字符串末尾有一个零字节.假设ASCII,"Bill"在内存中看起来像这样:
'B' 'i' 'l' 'l' '\0'
0x42 0x69 0x6c 0x6c 0x00
Run Code Online (Sandbox Code Playgroud)
从C标准,第6.4.5节字符串文字,第7段:
在转换阶段7中,将值为零的字节或代码附加到由字符串文字或文字产生的每个多字节字符序列.
如果你想获得4长度的答案,你应该使用strlen("Bill"),而不是sizeof.
如果你真的不想要null终结符,那也是可能的,尽管可能是不明智的.这个定义:
char bill[4] = "Bill";
Run Code Online (Sandbox Code Playgroud)
将产生一个4字节的数组bill只包含字符'B','i','l',和'l',没有空终止符.
| 归档时间: |
|
| 查看次数: |
329 次 |
| 最近记录: |