我需要知道这个数组将占用多少字节:
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,并包含空终止符。