相关疑难解决方法(0)

使用大括号初始化标量

在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.

c c++ initialization language-lawyer list-initialization

12
推荐指数
1
解决办法
1059
查看次数

string array [] =""; 意思是,它为什么有效?

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数组不起作用?

c++ arrays

4
推荐指数
1
解决办法
319
查看次数

用引号和花括号初始化字符数组

我有点困惑。这些代码之间的逻辑区别是什么?

#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)

c++ arrays initializing

4
推荐指数
1
解决办法
3065
查看次数