我需要知道这个数组将占用多少字节:

char s[10] = "test";

因为"test" + "\0",它是10字节还是5字节?

最佳答案

只是想澄清一下

 char s[10] = "test";

这里s将占用10个字节,因为您已经显式地提供了大小。
哦,定义像
 char s[ ] = "test";

s将占用5个字节,因为数组的大小将根据提供的初始值设定项(4个元素加上一个空终止符)来确定
对于char数组,第二种方法被认为是更好的方法,因为有时,它可能会在定义大小时忘记计算空终止符的空间,从而避免麻烦。
想想这个场景,
 char arr[5] = "Hello";

这里,arr的大小为5,并且不以空结尾但是如果你用
 char arr[ ] = "Hello";

编译器将自动确定包含空终止符的大小因此,arr的大小为6,并包含空终止符。

10-04 15:13
查看更多