更多“设有定义"struct{inta;floatb;charc;}abc,*p_abc=&abc;",则对结构体成员a的引用方 ”相关问题
  • 第1题:

    设有定义“struct {int a; float b; char c;} abc, *p_abc=&abc;”,则对结构体成员a的引用方法可以是abc.a和p_abca。


    正确答案:->
    本题主要考查结构体的引用。在本题中,首先定义了一个结构体和该结构体的变量abc,然后定义一个结构指针变量p_abc,并使其指向该结构体变量abc。
    结构成员的引用形式主要有两种。第一种的表达式为:
    结构变量名.成员名
    其中,“.”是一个小数点字符,称为结构成员运算符,“.”连接结构变量名和成员名。“.”属于最高优先级运算符。所以,结构成员的引用表达式在任何地方出现都是一个整体,它的作用与一个下标变量(对数组元素的引用)相同,前者表示一个结构成员,后者表示一个数组成员。
    第二种的表达式为:
        (*结构指针变量).成员名
    或者
        结构指针变量->成员名
    因此,本题对结构体成员的引用方法可以为abc.a和p_abc->a。

  • 第2题:

    设有以下说明语句: struct stu { int a; float b; }stutype; 则下面叙述不正确的是( )。

    A.struct是结构体类型的关键字

    B.structstu是用户定义的结构体类型

    C.stutype是用户定义的结构体类型名

    D.a和b都是结构体成员名


    正确答案:C
    解析:定义一个结构的一般形式为:struct结构体名{成员列表}变量名列表;本题中的stutype是在声明结构体类型structstu的同时定义的该结构体变量,而不是用户定义的结构体类型名。

  • 第3题:

    设有定义语句“struct {int a;float b;char c;}abc,*p;”,则对结构体成员a的引用可以是( )。

    A、abc.a

    B、abc->a

    C、(*p).a

    D、p->a


    参考答案ACD

  • 第4题:

    设有定义“struct {int a;float b;char c;}abc,*p_abc=&abc;”,则对结构体成员a的引用方法可以是abc.a和p_abc【 】a。


    正确答案:->
    -> 解析:若结构体变量abc有成员a,并有指针p_abc指向结构变量abc,则引用变量abc成员a的标记形式有abc.a和p_abc->a。

  • 第5题:

    设有以下说明语句 struct stu { int a; float b; }stutype; 则下面的叙述不正确的是

    A.struct是结构体类型的关键字

    B.struct stu是用户定义的结构体类型

    C.stutype是用户定义的结构体类型名

    D.a和b都是结构体成员名


    正确答案:C
    解析:定义一个结构的一般形式为:struct结构名{成员列表};本题中,stutype是在声明类型的同时定义的structstu类型的变量。而不是用户定义的结构体类型名。我们需要注意以下几点:①类型与变量是不同的概念;②对结构体中的成员,可以单独使用,它的作用与地位相当于普通变量;③成员也可以是一个结构体变量;④成员名可以与程序中的变量名相同,二者不代表同一对象。