关于数组的初始化
发布网友
发布时间:2022-05-15 13:21
我来回答
共5个回答
热心网友
时间:2023-10-25 00:42
int A[2][3]={1,2,3,4,5,6}; 这样是数组的初始化过程,可以将数组每个元素或者部分元素进行赋值;
一旦int A[2][3;定义之后,就不能A[2][3]={1,2,3,4,5,6};这样赋值了,只能对元素一个一个的赋值;对于您举的例子A[2][3] 代表一个元素了,不再是数组了,而且是一个越界的元素;A的元素有A[0][0] A[0][1] A[0][2] A[1][0] A[1][1] A[1][2] ; A[2][3]已经越界了
热心网友
时间:2023-10-25 00:43
意思是说,扩展的数组初始化只能在-std=c++11 or -std=gnu++11 选项才有效
所以在命令行后面加上这个选项,我的编译环境不同,略有差异,g++ test.cpp -std=c++0x
不过错误又来了,因为你的A[2][3]是一个int,你是不能用{1,2,3,4,5,6}来初始化一个int的,
如果A是一个结构体的数组,那么应该是可以,否则应该这样:
int A[2][3];
A={{1,2,3},{4,5,6}};
对于结构体例如:
typedef struct
{
int a;
int b;
int c;
int d;
int e;
int f;
} AA;
int main()
{
AA A[2][3];
A[2][3]={1,2,3,4,5,6};
}
热心网友
时间:2023-10-25 00:43
初始化就是 在申明时就对数组进行赋值,如 int A[2][3]={1,2,3,4,5,6};
而 A[2][3]={1,2,3,4,5,6};不叫初始化就是一个赋值,可以一个一个赋值 如:a[0][0]=1;
热心网友
时间:2023-10-25 00:44
这种初始化方式只能在数组声明的时候使用的,很多编程书上都有说明
热心网友
时间:2023-10-25 00:45
打印两个结果出来都是abc,但是{“”} 和“”是不一样的空间,最后都赋给了数组
s[0]打印的是第一个字符,即'a'
希望对你有用