在C ++中,这一行是什么意思?
string postfix = "";
具体来说,=""
是什么意思?
另外,如果我用C而不是C ++编写行,它会是这样的吗?
char postfix[20] = "";
答案 0 :(得分:1)
在这种情况下,= ""
中的string postfix = "";
表示编写代码的人并不理解标准字符串类。 std::string postfix;
创建一个名为postfix
的空字符串。 string postfix = "";
做同样的事情,但它更冗长,可以生成更多代码。
char
数组有点不同。
如果它在全局范围内定义且没有初始化程序,如
char postfix[20]; // global scope
数组的所有元素都将设置为0
。如果它有一个空的带引号的字符串作为其初始值设定项,则相同:
char postfix[20] = ""; // global scope
如果它没有在全局范围内定义且没有初始化程序,则它不会被初始化,并且尝试使用其中的值将产生不可预测的影响。
如果它没有在全局范围内定义并且它有一个空字符串作为其初始化程序,它的所有元素都将被初始化为0
(感谢Jonathan Leffler指出我之前的语句中的错误)。