当前位置: 首页 > 计算机 > 问题详情
问题

若有以下定义和语句struct a{int n m;};struct a st[3]={{1 20} {2 19} {3 21}};struct a*p=st;

若有以下定义和语句 struct a { int n,m;}; struct a st[3]={{1,20},{2,19},{3,21}}; struct a*p=st; 则以下错误的引用是

A.(p++)->n;

B.st[0].n;

C.(*p).n;

D.p=&st.m;

发布时间:2024-05-07
参考答案

正确答案:D
解析:可以用以下三种形式来引用结构体变量中的成员:结构体变量名.成员名、指针变量名->成员名和(*指针变量名).成员名。选项D)中“&st.m”取的是结构体中成员的地址而不是结构的地址。

相关问题
  • 1. 若有下面的函数调用:fun(a+b 3 max(n-1 b));其中实参

    1 若有下面的函数调用:fun(a+b, 3,max(n-1, b));其中实参的个数是()A)3B)4C)5D)6

    答案解析
  • 若有定义 int x y; 并已正确给变量赋值 则以下选项中与表达

    若有定义 int x,y; 并已正确给变量赋值,则以下选项中与表达式 (x-y)?(x++) : (y++) 中的条件表达式 (x-y) 等价的是A)(x-y>0)B)(x-y<0)C)(x-y<0||x-y>0)D)(x-y==0)

    答案解析
  • 若有以下定义和语句union data{ int i; char c; float f;

    若有以下定义和语句union data{ int i; char c; float f; } x;int y;则以下语句正确的是A)x=10 5;B)x c=101;C)y=x;D)printf( "%d n ",x);

    答案解析
  • 在 16 位编译系统上 若有定义 int a[]={10 20 30} *p=

    在 16 位编译系统上,若有定义 int a[]={10,20,30}, *p=&a; ,当执行 p++; 后,下列说法错误的是A)p 向高地址移了一个字节B)p 向高地址移了一

    答案解析
  • 若有定义: int w[3][5]; 则以下不能正确表示该数组元素的表

    若有定义: int w[3][5]; ,则以下不能正确表示该数组元素的表达式是A)*(*w+3)B)*(w+1)[4]C)*(*(w+1))D)*(&w[0][0]+1)

    答案解析
  • 若有以下函数首部int fun(double x[10] int *n)则下面针对

    若有以下函数首部int fun(double x[10], int *n)则下面针对此函数的函数声明语句中正确的是A)int fun(double x, int *n);B)int fun(double ,

    答案解析
  • 若有定义语句: int k[2][3] *pk[3]; 则以下语句中正确的

    若有定义语句: int k[2][3],*pk[3]; , 则以下语句中正确的是A ) pk=k;B ) pk[0]=&k[1][2];C ) pk=k[0];D ) pk[1]=k;

    答案解析
  • 若有定义 :char *x="abcdefghi"; 以下选项中正确运用了 st

    若有定义 :char *x="abcdefghi"; ,以下选项中正确运用了 strcpy 函数的是A)char y[10]; strcpy(y,x[4]);B)char y[10]; strcpy(++y,&x[1]);C)ch

    答案解析
  • 若有定义int a[]=new int[2][3];则数组第1个下标的可用范围是(

    若有定义int a[]=new int[2][3];则数组第1个下标的可用范围是()A、1到2B、0到2C、1D、0到1

    答案解析
  • 若有int x=10;char c=&#x27;d&#x27;;则表达式a+c的值的类型是

    若有int x=10;char c= "d ";则表达式a+c的值的类型是()。A charB intC floatD byte

    答案解析

最新问题

Copyright © 2016-2023 114题库网(114158.com)All Rights Reserved.  免责声明 豫ICP备19007809号-5