【发布时间】:2012-10-05 12:55:58
【问题描述】:
在C/C++中,下面两行代码有什么区别:
char *str1="hello";
char *str2={"hello"};
【问题讨论】:
-
没有区别。他们都破坏了编译
-
@BЈовић 至少在 C++ 中,但在 C 中不是(谁知道 "C/C++" 是什么)。
-
@PeteBecker 唯一的问题是“C/C++ 中的 X?”可能的意思是“C中的X? C++ 中的 X?”。这很糟糕,因为在同一个问题中提出多个问题是很糟糕的。在发表此评论时,有一个答案仅适用于 C++,而另一个答案仅适用于 C。meta.stackexchange.com/questions/39223/…
-
@PeteBecker 我当然知道,讽刺是故意的。事实上,这个问题是 C/C++ 完全不合适的情况之一(尽管我同意它有时是合适的,但通常不是,因为 OP 通常不知道它的影响),因为两种语言的答案都不同。我知道 C 和 C++ 的答案通常是相同的(至少对于纯语言和标准相关的问题),但这里肯定不是。
-
@BЈовић:这实际上并没有破坏编译。它在 C++ (
write-stringsIIRC) 中发出警告,并在 C 中编译得很好。
标签: c++ c pointers initialization