C语言中若有以下结构体定义。

struct s
{
int x;
int y;
}vs;
则选择哪项赋值是正确的?
A. s.x=10; B. s.vs.x=10; C.vs.x=10; D.struct s va ={10};

C语言结构体赋值有四种方式,如下:

1、用{}形式.
如:

struct st1 st1 = {1,2,3);

2、 linux kernel风格,如下:

struct st1 st1 = {
.a = 1;
.b = 2;
};

//注 此风格(即在成员变量之前加点“.”),可以不按成员变量的顺序进行赋值。如可以为:

struct st1 st1 = {

.c = 3;
.a = 1;
.b = 2;

};

3、对整体赋值,如下:

struct st1 a, b;
b = a;

4、 结构体作为函数返回值对另一个结构体赋值,如下:

struct st1 func1();

struct st1 a = func1();
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-11
C.vs.x=10;追问

求解详细过程。

追答

struct s
{
int x;
int y;
}
是类型,vs是 struct s类型的变量.

A错,因为s是类型,不是变量
B错,同上
D错,因为这是给 struct s类型的变量va初始化,需要给每个数据成员赋值,比如
struct s va ={10, 20};

C正确,是给vs的数据成员x 赋值

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

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