为什么与字符串文字不同,具有单独字符的字符数组不以空终止符结尾?

克里斯·格雷

我在 C++ 中玩弄字符数组并编写了这个程序:

int main()
{

char text[] = { 'h', 'e', 'l', 'l', 'o' };  //arrays initialised like this 
                                            //will have a size of the number 
                                            //of elements that you see

char text2[] = "hello"; //arrays initialised like this will have a size of 
                        //the number of elements that you see + 1 (0 on the 
                        //end to show where the end is

cout << endl;

cout << "The size of the first array is: " << sizeof(text) << endl;

cout << endl;

for (int i = 0; i < sizeof(text); i++)
{
    cout << i << ":" << text[i] << endl;
}
cout << endl;

cout << "The size of the first array is: " << sizeof(text2) << endl;

cout << endl;

for (int i = 0; i < sizeof(text2); i++)
{
    cout << i << ":" << text2[i] << endl;
}
cout << endl;

cin.get();

return 0;
}

这个程序给了我输出:

The size of the first array is: 5

0:h
1:e
2:l
3:l
4:o

The size of the first array is: 6

0:h
1:e
2:l
3:l
4:o
5:

我的问题是:与使用字符串文字初始化 char 数组不同,使用单独的字符初始化 char 数组是否有特殊原因在末尾没有空终止符 (0)?

干杯和hth。- 阿尔夫

花括号初始值设定项只是为数组提供指定的值(或者如果数组更大,则其余项是默认值)。即使项目是char值,它也不是字符串char只是最小的整数类型。

字符串文字表示以零结尾的值序列。

就这样。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

以null终止符结尾的字符串文字是否包含额外的null终止符?

来自分类Dev

C中字符串结尾处的两个空终止符

来自分类Dev

释放字符串直到空终止符

来自分类Dev

字符串终止符问题

来自分类Dev

有没有办法转义 C 字符串空终止符?

来自分类Dev

为什么“字符串”(即字符数组)具有以零结尾的元素,而整数数组却没有?

来自分类Dev

当我不使用1结束字符串时,为什么要循环遍历char数组直到NULL终止符?

来自分类Dev

C ++返回的字符串长度,包括包含的空终止符字节

来自分类Dev

超大缓冲区中的C字符串空终止符

来自分类Dev

std ::带有和不带有\ 0终止符的字符串

来自分类Dev

x86汇编语言中空终止字符串和不以空终止的字符串有什么区别

来自分类Dev

正则表达式以匹配以部分已知的终止符结尾的未知长度的字符串

来自分类Dev

省略C ++字符串中的空字符串终止符

来自分类Dev

删除所有不以特定字符串结尾的行

来自分类Dev

为什么要构造具有多个字符串文字的字符串?

来自分类Dev

为什么C不需要null零作为字符串终止符,而Java却不需要呢?

来自分类Dev

在C中附加带空终止符的字符

来自分类Dev

空终止的字符数组与字符串对象

来自分类Dev

正则表达式用于查找具有超过1个空格但不以换行符结尾的字符串

来自分类Dev

如何解决从mmap()返回的字符串中缺少NUL终止符的问题?

来自分类Dev

内存为具有空终止字符的fget分配字符串

来自分类Dev

内存为具有空终止字符的fget分配字符串

来自分类Dev

javascript:将字符串拆分为具有不同定界符的数组

来自分类Dev

为什么我的字符串数组变为空-C

来自分类Dev

将空字符添加到非空终止的字符串有什么问题?

来自分类Dev

实现具有不同大小元素的字符串数组

来自分类Dev

为什么多维数组中的空字符串文字会衰减为空指针?

来自分类Dev

字符串文字之后,所有+都将被视为字符串串联运算符,为什么?

来自分类Dev

为什么字符串文字不是字符串?

Related 相关文章

  1. 1

    以null终止符结尾的字符串文字是否包含额外的null终止符?

  2. 2

    C中字符串结尾处的两个空终止符

  3. 3

    释放字符串直到空终止符

  4. 4

    字符串终止符问题

  5. 5

    有没有办法转义 C 字符串空终止符?

  6. 6

    为什么“字符串”(即字符数组)具有以零结尾的元素,而整数数组却没有?

  7. 7

    当我不使用1结束字符串时,为什么要循环遍历char数组直到NULL终止符?

  8. 8

    C ++返回的字符串长度,包括包含的空终止符字节

  9. 9

    超大缓冲区中的C字符串空终止符

  10. 10

    std ::带有和不带有\ 0终止符的字符串

  11. 11

    x86汇编语言中空终止字符串和不以空终止的字符串有什么区别

  12. 12

    正则表达式以匹配以部分已知的终止符结尾的未知长度的字符串

  13. 13

    省略C ++字符串中的空字符串终止符

  14. 14

    删除所有不以特定字符串结尾的行

  15. 15

    为什么要构造具有多个字符串文字的字符串?

  16. 16

    为什么C不需要null零作为字符串终止符,而Java却不需要呢?

  17. 17

    在C中附加带空终止符的字符

  18. 18

    空终止的字符数组与字符串对象

  19. 19

    正则表达式用于查找具有超过1个空格但不以换行符结尾的字符串

  20. 20

    如何解决从mmap()返回的字符串中缺少NUL终止符的问题?

  21. 21

    内存为具有空终止字符的fget分配字符串

  22. 22

    内存为具有空终止字符的fget分配字符串

  23. 23

    javascript:将字符串拆分为具有不同定界符的数组

  24. 24

    为什么我的字符串数组变为空-C

  25. 25

    将空字符添加到非空终止的字符串有什么问题?

  26. 26

    实现具有不同大小元素的字符串数组

  27. 27

    为什么多维数组中的空字符串文字会衰减为空指针?

  28. 28

    字符串文字之后,所有+都将被视为字符串串联运算符,为什么?

  29. 29

    为什么字符串文字不是字符串?

热门标签

归档