关于一道C语言的题目 #include<stdio.h> struct num { int x,y; } st[ ]={{1,10},{2,20},{3,30},{4,40},{-

2025-05-17 07:28:58
推荐回答(4个)
回答1:

st[]是一个结构体数组。st[k].x是数组中第k个结构体的属性x的值
s1[2]和s2[2]都是结构体数组
当st[k].x不能被2整除时,s1[i++]就被赋值为st[k]
当st[k].x能被2整除时,s2[ij++]就被赋值为st[k]
for循环完成之后s1[0]={1,10},s1[1]={3,30}
s2[0]={2,20},s2[1]={4,40}
所以s1[0].y=10,s2[0].y=20

回答2:

st[k].x表示st数组第k个结构体的x值
st[ ]={{1,10},{2,20},{3,30},{4,40},{-1,-1}},s1[2],s2[2];
st[0].x = 1, st[0].y=10
st[1].x = 2, st[1].y=20
st[2].x = 3, st[2].y=30
......
我想你知道了这个应该就能理解结果怎么来的了。
s1[0] = st[0];
s1[1] = st[2];
s2[0] = st[1];
s2[1] = st[3];
打印s1[0].y和s2[0].y,当然就是10和20

回答3:

10和20是数组里的两个不相干的元素,st[k].k是结构体变量数组名.成员名 是用来引用结构体变量中的成员。

回答4:

是gknkjbgk=hfkhoiwsf的意思