精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
结构体对象往往有很多成员,成员的访问通过点.来实现,如果在定义对象后,每个成员再写一行赋值语句来初始化,则很麻烦。比如:
struct tt{int n;int a};
tt t1;
t1.n=10;
t1.a=5;
为了简化这个操作,C语言提供了{}方式来进行初始化,上面的3行代码的效果可以转换为tt t1={10,5};在{}里逗号分开的部分和成员个数一致,一个部分的值会对应赋值给按位置对应的成员。
把上文里的结构体复杂化,变成:struct tt{int n[20],int a};
这时候初始化语句要写成:tt b={{1},2};这表示把n数组成员的第一项设置为1,后续项设置为0.这里对数组的初始化掌握的好的同学会容易理解这个复合的形式。因为数组是可以用{}来初始化。这时候把各个项用结构体的成员来理解,也容易理解{}初始化机制。
假设一个结构体的数组的长度呢?
一样处理
把double类型换为结构体类型
哦
struct tt{int n[20],int a};
这时候想定义一个tt型的b并给定初值:n[1]=1,a=2;应该如果写呢?
tt b={1},2};
{1}是n里面的所有值都定义为1?
我想n[0]=0,n[1]=1呢?