【问题标题】:character array initialisation to NULL in c++在 C++ 中将字符数组初始化为 NULL
【发布时间】:2020-04-23 11:04:03
【问题描述】:

这样初始化字符数组有什么区别

char c[10]={0};

还有这个

char c[10]="";

【问题讨论】:

  • 如果可能,考虑使用 std::string 字符串。而NULL0的含义不同
  • 哪种语言?标签说 C++,标题说 C...
  • @Timo:OP 侥幸逃脱 - 两种语言的答案都是一样的。
  • @Bathsheba 是的,但我不知道,因为我不知道 C 规范:P
  • @Timo:有人吗? -;)

标签: c++ arrays null character


【解决方案1】:

char c[10]={0};保证数组的每个元素都是0。注意在C++中你可以写char c[10]={};,效果一样。

char c[10]="";保证只有数组的第一个元素为0;其他元素未初始化。

【讨论】:

  • 有没有办法在打印时查看差异? for (int i=0;i<10;i++){ if(c[i]=='\0') printf("null char"); printf("%c\n",c[i]); } 当我以这种方式打印时,两者都给出相同的输出
  • @PragatiSharma:这就是阅读未初始化的char 数据的美妙之处:你不知道你会得到什么。
  • 好的,就这样吧。谢谢。 :)
猜你喜欢
  • 2012-12-03
  • 2022-01-16
  • 1970-01-01
  • 1970-01-01
  • 2022-07-23
  • 2012-07-18
  • 2012-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多