在C和C++中,可以使用大括号初始化数组和结构:
int a[] = {2, 3, 5, 7};
entry e = {"answer", 42};
Run Code Online (Sandbox Code Playgroud)
然而,在2007年的一次演讲中,Bjarne提到这种语法也适用于标量.我尝试过这个:
int i = {7};
Run Code Online (Sandbox Code Playgroud)
它确实有效!允许使用大括号初始化标量的原理是什么?
注意:我特别不是在谈论C++ 11统一初始化.这是很好的旧C89和C++ 98.
string array[] = "";
Run Code Online (Sandbox Code Playgroud)
我怎么能分配一个const char*数组?这是一样的:
string array[] = {""};
Run Code Online (Sandbox Code Playgroud)
?? 这对我来说很有意义.但是,这仍然不起作用
int array[] = 5;
Run Code Online (Sandbox Code Playgroud)
那么它们之间的区别在于它对int数组不起作用?
我有点困惑。这些代码之间的逻辑区别是什么?
#include <iostream>
using namespace std;
int main(){
char a[5]="ABCD"; // this
cout << a;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
其次是
char a[5]={"ABCD"}; // this
Run Code Online (Sandbox Code Playgroud)
第三是
char a[5]={'A','B','C','D'}; // this
Run Code Online (Sandbox Code Playgroud)