题干:设有定义:
struct
{
int n;
float x;
} s[2],m[2]= {{10,2.8},{0,0.0}};
则以下赋值语句中正确的是()。
A
s[0]=m[1];
B
s=m;
C
s.n=m.n;
D
s[2].x=m[2].x;
题干:设有定义:
struct
{
int n;
float x;
} s[2],m[2]= {{10,2.8},{0,0.0}};
则以下赋值语句中正确的是()。
A
s[0]=m[1];
B
s=m;
C
s.n=m.n;
D
s[2].x=m[2].x;
s不能看成s[0],s相当于结构体数组首地址,是指针类型,而s[0]是结构体数组第一个元素,是结构体类型。应该是s和&s[0]是同一个地址,两者相当
A。正确,两个结构体类型可以直接赋值,因为结构体内没有特殊类型(实现了=操作符的特殊类型也可以赋值)
B。错误,数组不可以直接赋值
C。错误,s和m是数组,不存在这种访问方法
D。错误。s[2]和m[2]是越界访问