题目如下 #include<stdio.h>struct s {int a,b;} data[2]=10,100,20,200}; main() { struct s p=da...

2025-04-30 02:46:46
推荐回答(1个)
回答1:

struct s {int a,b;} data[2]=10,100,20,200}; 定义了一个结构体类型 S,和这个结构体的数组data.。这个data数组有两个结构体data[0]和data[1],data[0]的a是10,b是100;data[1]的a是20,b是200。
struct s p=data[1]; 用结构体类型定义了一个变量p,这时p就是一个S类型的结构体变量了,并且把data[1]赋值给p,这时p.a=20, p.b=200,执行++(p.a) 就是21了。
其实这个程序的书写很不规范,很容易误导初学者,但很多教科书上都喜欢这样,特别是国内的教科书,像下面这样 应该分开定义才更容易理解
struct s {int a; int b;}
struct s data[2]={10,100,20,200};