结构体中二维数组的赋值

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

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

直接用 test.a[2][2]={{1,2},{3,4}},是不行的,为什么不行呢??
难道只可以用循环的方法来赋值吗?
...全文
1341 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
youkuxiaobin 2012-06-23
  • 打赏
  • 举报
回复
只能循环赋值
Code_Talk 2012-06-23
  • 打赏
  • 举报
回复
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}};//这样的方式只能用来初始化
里面都是我新手时期学C的时候整理的一些TXT文档,因为分不够了,所以放上来赚点积分,都是很基础的东西,里面的代码都是经过我测试的,保证可用。 (1)输出Hello,world (2)标识符 (3)常量与变量 (4)整型数据 (5)实型数据 (6)复合赋值表达式 (7)自加自减运算符和逗号表达式 (8)顺序结构及数据输出 (9)数据输入 (10)作业练习一 (11)关系运算符和逻辑运算符 (12)选择结构及条件表达式 (13)循环结构,while语句 (14)循环结构,do while语句 (15)循环结构,for语句 (16)字符型数据 (17)字符型数据实例,作业练习二 (18)函数定义 (19)函数应用实例,作业练习三 (20)指针的定义 (21)函数之间地址值的传递 (22)函数返回地址值 (23)一维数组的定义 (24)一维数组应用实例 (25)一维数组应用实例(2) (26)一维数组应用实例(3) (27)二维数组的定义 (28)二维数组的初始化 (29)二维数组与指针 (30)二维数组应用实例 (31)二维数组应用实例(2) (32)用一维数组来存储字符串 (33)字符串的输入与输出 (34)字符串数组 (35)用于字符串处理的函数 (36)字符串应用实例 (37)传给Main函数的参数 (38)函数指针 (39)函数的递归调用 (40)变量作用域和存储类别 (41)编译预处理和不带参数的宏替换 (42)带参数的宏替换和文件包含 (43)动态存储分配 (44)结构体变量的定义与引用 (45)利用结构体变量构成静态链表 (46)利用结构体变量构成动态链表 (47)共用体的定义与应用 (48)位运算符 (49)File文件的数据输出操作 (50)File文件的数据输入操作 (51)判断文件结束函数 (52)fscanf和fprintf函数 (53)fgets和fputs函数 (54)fread和fwrite函数 (55)文件定位函数 c switch的用法 c 避免调试窗口闪退 c 弹出消息窗口 c 等待函数(sleep) c 定义类成员 c 动态分配内存法定义数组 c 返回二维数组 c 方向键键码 c 改变字体颜色 c 绘制图形 c 获得鼠标当前位置坐标 c 检测键盘按键 c 检测鼠标按下事件 c 将整数转换成二进制数并存放到数组 c 结构体问题 c 使用winsock实现server和client(通讯程序) c 随机数发生器 c 图形模式详解 c 网页爬虫 c 写图形界面 c 遗传算法实例 c 在图形界面输出文字 c# List的用法 VS2010如何解决每次编译都要重新生成
很好用的东西很经典的一本C教程,TKS这算是谭浩强C语言设计比较新的版本了!目录很详细,使用很方便目录 第1章 C语言程序设计的概念  1.1 程序与程序设计语言   1.1.1 计算机与程序   1.1.2 计算机程序设计语言   1.1.3 高级语言程序的开发过程  1.2 C语言及其标准   1.2.1 C语言的出现   1.2.2 C语言的标准  1.3 C语言程序概要   1.3.1 函数   1.3.2 语句   1.3.3 名字与声明   1.3.4 变量及其赋值   1.3.5 算术运算   1.3.6 赋值类运算符的副作用及限制  习题一 第2章 基本数据类型  2.1 基本数据类型的特征   2.1.1 数值的定点表示与浮点表示   2.1.2 整数的有符号类型与无符号类型   2.1.3 类型宽度与取值范围  2.2 数据常量   2.2.1 整型常量   2.2.2 字符类型及其常量   2.2.3 实型常量   2.2.4 符号常量  2.3 数据类型转换   2.3.1 几个概念   2.3.2 数据类型的隐式转换   2.3.3 数据类型的显式转换   2.4 数据的控制台输入与输出   2.4.1 格式化输出函数pIintf()   2.4.2 格式化输入函数scanf()   2.4.3 字符输入/输出函数getchar()与putchar()  习题二 第3章 C语言程序的流程控制  3.1 算法   3.1.1 算法的组成要素与基本性质   3.1.2 算法描述工具   3.1.3 自项向下、逐步细化的算法设计过程  3.2 判断   3.2.1 命题的“真”、“假”与C语言的逻辑值   3.2.2 关系运算与关系表达式   3.2.3 逻辑运算与逻辑表达式  3.3 选择型程序设计   3.3.1 if...else结构的应用   3.3.2 if.elseif结构的应用   3.3.3 switch结构的应用   3.3.4 条件表达式  3.4 循环型程序设计   3.4.1 迭代与穷举算法   3.4.2 while结构   3.4.3 dowhile结构   3.4.4 for结构   3.4.5 循环结构的途退出与重复周期的途结束  习题三 第4章 模块化程序设计  4.1 函数   4.1.1 设计C语言程序就是设计函数   4.1.2 函数结构   4.1.3 函数定义与函数声明   4.1.4 虚实结合与传值调用   4.1.5 递归函数  4.2 变量的存储属性   4.2.1 变量的作用域与生存期   4.2.2 C语言变量的存储类型   4.2.3 通过const声明将变量存储在只读区  4.3 模块的编译与链接   4.3.1 分别编译   4.3.2 用项目管理多文件程序的编译与链接过程   4.3.3 头文件  4.4 宏定义与宏替换   4.4.1 字符串宏定义及其基本格式   4.4.2 使用宏需注意的问题   4.4.3 撤销己定义的宏   4.4.4 带参数的宏定义  习题四 第5章 数组  5.1 一维数组   5.1.1 一维数组定义及数组元素引用   5.1.2 数组元素的引用方法   5.1.3 一维数组的初始化   5.1.4 一维数组元素的查找与排序   5.1.5 数组与函数  5.2 字符串   5.2.1 字符数组与字符串   5.2.2 字符串的输入/输出   5.2.3 字符串处理函数  5.3 二维数组与多维数组   5.3.1 二维数组及其定义   5.3.2 二维数组的初始化   5.3.3 向函数传送二维数组   5.3.4 多维数组  习题五 第6章 指针  6.1 指针基础   6.1.1 地址与指针   6.1.2 指针变量及其定义   6.1.3指针变量的引用   6.1.4 指针的移动与比较   6.1.5 指向指针变量的指针与多级指针   6.1.6 指向void类型的指针  6.2 指针与数组   6.2.1 数组元素的指针引用   6.2.2 多字符串的存储与处理   6.2.3 内存的动态分配与动态数组的建立  6.3 指针与函数   6.3.1 指针参数与函数的地址传送调用   6.3.2 带参数的主函数   6.3.3 返回指针值的函数   6.3.4 指向函数的指针  习题六 第7章 用户定制数据类型  7.1 结构体类型基础   7.1.1 结构体类型及其定制   7.1.2 定义结构体类型变量及对变量的初始化   7.1.3 结构体变量的操作   7.1.4 嵌套结构体类型   7.1.5 位段  7.2 结构体数组   7.2.1 结构体数组的定义与初始化   7.2.2 对结构体

69,371

社区成员

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

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