C语言求出:能定义s为合法的结构体变量的是______.

以下选项中,能定义s为合法的结构体变量的是______。

A:typedef struct abc

{ double a;

char b[10];

} s;

B:struct

{ double a;

char b[10];

}s;

C:struct ABC

{ double a;

char b[10];

}

ABC s;

D:typedef ABC

{ double a;

char b[10];

}
本题 求详细解释! 不明白的地方:不是定义s吗?为什么会有什么 abc double a; char b【10】 这些都是什么意思 求助

B
A:定义了一个结构体名s,以后可以直接用s来定义变量,如s myvar;
C:定义的时候要用struct ABC s(在C++中可以省略struct,但C中不可以)
D:这个定义都不完整吧,连s都没有出现。。追问

请问这道题什么意思 我一点都不会 完全不懂 他说定义s
跟那个abc 有什么关系 后来那些char 【10】 什么的 都是什么意思
再为我解答一下吧 辛苦~~

追答

。。。你应该有c语言的基本知识吧?
题目的意思就是说下面的选项中哪一个正确的定义了一个结构体变量。变量名被假定为s。
至于后面的abc只是结构体名,这个不用关心,可以是任何的名字。

结构体你应该懂吧?struct{xxx;xxx;}就是在定义结构体。xxx就是该结构体含有的基本的成员。
如果有个名字直接跟在stuct后面,如选项C中的ABC----这个是指结构体名。不是变量名。
如果名字跟在结构体定义的花括号之后,如选项B中的s,这个就是结构体变量名。s是个变量,可以对其进行数据操作。
至于选项A,typedef是类型重定义的意思,即把struct abc这个结构重命名为了s。s应理解为结构体名。如果要定义变量,可以用s直接定义:s myvar 等价于 struct abc myvar。
myvar即为结构体变量。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-23
答案是B
C的“}”后面应该加个分号追问

请问这道题什么意思 我一点都不会 完全不懂 他说定义s
跟那个abc 有什么关系 后来那些char 【10】 什么的 都是什么意思
再为我解答一下吧 辛苦~~

第2个回答  2013-06-24
typedef 就相当于给s想了一个别名 所以正确的是A
第3个回答  2013-06-24
B、、这些只是S中的变量,,把他们保存在S里。。定义里s就是结构体
第4个回答  2013-06-23
B
对于C 的话前面应该加上struct追问

请问这道题什么意思 我一点都不会 完全不懂 他说定义s
跟那个abc 有什么关系 后来那些char 【10】 什么的 都是什么意思
再为我解答一下吧 辛苦~~

追答

自己多看看书吧

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网