作业帮 > 综合 > 作业

写出下面C语言程序答案的推断过程,

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/14 23:10:41
写出下面C语言程序答案的推断过程,
#include
struct S
{
\x05int a,b;
}
data[2]={10,100,20,200};
main()
{
\x05struct S p=data[1];
\x05printf("%d\n",++(p.a));
}
C标准规定只有当初始化表达式列表中元素个数与定义要求的个数相符时才能省略内层花括号.data数组有两个元素,每个元素的类型是结构体struct S,包含2个int型的成员.而初始化列表只有一层外层花括号,内有4个整型,与data数组定义初始化全部共计需要4个int型数.两者数量相符,因此定义没有问题.等价于
struct S
{
    int a,b;
}
data[2]={{10,100},{20,200}};
因此p={20,200},p.a=20,++p.a=21.结果输出为21.