关于数组的初始化
intmain(){intA[2][3];A[2][3]={1,2,3,4,5,6};}打比方以上这段代码,在eclipse里面编译会有错误:Multiplemarker...
int main()
{
int A[2][3];
A[2][3]={1,2,3,4,5,6};
}
打比方以上这段代码,在eclipse里面编译会有错误:
Multiple markers at this line
- 警告: extended initializer lists only available with -std=c++11 or -std=gnu++11 [デ
フォルトで有効]
- エラー: cannot convert ‘<brace-enclosed initializer list>’ to ‘int’ in assignment
为什么?
如果是:
int main()
{
int A[2][3]={1,2,3,4,5,6};
}
就没有问题。。
请教原理。。 展开
{
int A[2][3];
A[2][3]={1,2,3,4,5,6};
}
打比方以上这段代码,在eclipse里面编译会有错误:
Multiple markers at this line
- 警告: extended initializer lists only available with -std=c++11 or -std=gnu++11 [デ
フォルトで有効]
- エラー: cannot convert ‘<brace-enclosed initializer list>’ to ‘int’ in assignment
为什么?
如果是:
int main()
{
int A[2][3]={1,2,3,4,5,6};
}
就没有问题。。
请教原理。。 展开
6个回答
展开全部
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]已经越界了
一旦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]已经越界了
展开全部
意思是说,扩展的数组初始化只能在-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};
}
所以在命令行后面加上这个选项,我的编译环境不同,略有差异,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};
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
初始化就是 在申明时就对数组进行赋值,如 int A[2][3]={1,2,3,4,5,6};
而 A[2][3]={1,2,3,4,5,6};不叫初始化就是一个赋值,可以一个一个赋值 如:a[0][0]=1;
而 A[2][3]={1,2,3,4,5,6};不叫初始化就是一个赋值,可以一个一个赋值 如:a[0][0]=1;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-10-10
展开全部
这种初始化方式只能在数组声明的时候使用的,很多编程书上都有说明
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
打印两个结果出来都是abc,但是{“”} 和“”是不一样的空间,最后都赋给了数组
s[0]打印的是第一个字符,即'a'
希望对你有用
s[0]打印的是第一个字符,即'a'
希望对你有用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询