【发布时间】:2013-07-21 08:07:36
【问题描述】:
通常在C++中,字符数组的初始化方式如下,
char example[5]="cat";
如果你用""(只是一个没有空格的双引号)初始化它呢?
初始化后字符数组中的元素是什么?
【问题讨论】:
-
@trojanfoe 不,这只会告诉他第一个字符是
'\0'。剩下的呢? -
@LuchianGrigore 调试器不限于显示第一个字符。
-
@trojanfoe:很多 C++ 行为未定义或实现已定义;在一个平台上尝试,编译器不一定会告诉你在其他平台上会发生什么行为。因此,“试一试”的方法通常不是一种可靠的方法。
-
@trojanfoe 调试器可以在第一个字符之后放置任何字符,但这不是规则。在谈论 C++ 时,它并不像一直说“试试看你会看到”那么简单。这是调试器弊大于利的情况之一,因为它可能会欺骗你——你不能基于它做出任何假设。
-
@trojanfoe:如果我知道我会发布答案。但是,重要的是,你无法判断仅通过编译它并检查程序的行为来判断它是否定义良好。