结构体中二维数组的赋值

jndxhdu 2012-06-23 02:12:25
假如有这样一个结构体
typedef struct
{
int a[2][2];
int b;
}test;

如何对这个结构体中的二维数组进行赋值呢?

直接用 test.a[2][2]={{1,2},{3,4}},是不行的,为什么不行呢??
难道只可以用循环的方法来赋值吗?
...全文
1385 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
youkuxiaobin 2012-06-23
  • 打赏
  • 举报
回复
只能循环赋值
Code_Talk 2012-06-23
  • 打赏
  • 举报
回复 1
12楼说的挺全的了,总之就是:
1,创建结构体时是不能初始化成员的。
2,初始化数组只能循环每个元素赋值。
Code_Talk 2012-06-23
  • 打赏
  • 举报
回复
a[2][2],最大就是a[1][1] 哪有a[2][2].
pathuang68 2012-06-23
  • 打赏
  • 举报
回复
上面有几位说的很好。我再补充两点:

[Quote=引用 1 楼 的回复:]

test.a[2][2]={{1,2},{3,4}};//这样的方式只能用来初始化
[/Quote]

1. test.a[2][2]是什么?它只是二维数组中的一个元素而已,和后面的{{1,2},{3,4}};这个数据类型都对不上了
2. test.a[2][2]会是数组访问越界。因为在2 x 2的二位数组中,最大的下标应该是test.a[1][1]
baichi4141 2012-06-23
  • 打赏
  • 举报
回复
要对数组赋值,只能逐一对数组的每个元素赋值
没有其他办法

初始化是特例
smsgreenlife 2012-06-23
  • 打赏
  • 举报
回复
谭浩强的书说的很明白了,“{{1,2},{3,4}}”这种方法只能用于在定义的时候初始化。
jndxhdu 2012-06-23
  • 打赏
  • 举报
回复
你表达 的不是很清楚。。[Quote=引用 8 楼 的回复:]
你用错了test是类型,
应该test t;
[/Quote]
ningto.com 2012-06-23
  • 打赏
  • 举报
回复
你用错了test是类型,
应该test t;
yht8708 2012-06-23
  • 打赏
  • 举报
回复
结构体定义时不能直接赋值
[Quote=引用 3 楼 的回复:]
typedef struct
{
int a[2][2];
int b;
}test;
test a;
a.a[0][0] = 1;
a.a[0][1] =2;
a.a[1][0] = 3;
a.a[1][1] = 4;
[/Quote]
DataChat.Club 2012-06-23
  • 打赏
  • 举报
回复

int a[5];
a[5] = {1, 2, 3, 4, 5};//这样行吗?
jndxhdu 2012-06-23
  • 打赏
  • 举报
回复
那为什么我问题中的初始化方法是不可以的呢?[Quote=引用 4 楼 的回复:]

这样好像也是 不行的牙!引用楼主 的回复:
假如有这样一个结构体
typedef struct
{
int a[2][2];
int b;
}test;

如何对这个结构体中的二维数组进行赋值呢?

直接用 test.a[2][2]={{1,2},{3,4}},是不行的,为什么不行呢??
难道只可以用循环的方法来赋值吗?
[/Quote]
jndxhdu 2012-06-23
  • 打赏
  • 举报
回复
这样好像也是 不行的牙![Quote=引用楼主 的回复:]
假如有这样一个结构体
typedef struct
{
int a[2][2];
int b;
}test;

如何对这个结构体中的二维数组进行赋值呢?

直接用 test.a[2][2]={{1,2},{3,4}},是不行的,为什么不行呢??
难道只可以用循环的方法来赋值吗?
[/Quote]
laizhiping_rj 2012-06-23
  • 打赏
  • 举报
回复
typedef struct
{
int a[2][2];
int b;
}test;
test a;
a.a[0][0] = 1;
a.a[0][1] =2;
a.a[1][0] = 3;
a.a[1][1] = 4;
laizhiping_rj 2012-06-23
  • 打赏
  • 举报
回复

typedef struct
{
int a[2][2];
int b;
}test;
test a;
a.a[0][0] = 1;
a.a[0][1] =2;
a.a[1][0] = 3;
a.a[1][1] = 4;
JXLFZ 2012-06-23
  • 打赏
  • 举报
回复
test.a[2][2]={{1,2},{3,4}};//这样的方式只能用来初始化

70,024

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧