房天下 > 房天下问答 > 业主生活 > 其他
  • C语言选择题

    1.已知int a[][3]={1,2,3,4,5},y,*p=a;则执行语句y=(*++p)--;之后,数组a各元素值变为____答案:1,1,3,4问题:“=”不是在“--”运算符之后嘛,这道题怎么给数组第二个元素减一的?2.已知结构变量的定义:struct sl{ int a[20]; double b;}x;使用alloc函数为变量x分配内存后需要进行地址类型转换的格式是____A(struct sl)B(struct sl *) C(double *) D(struct)答案:B问题:我选的A,为什么选B?3.若要利用下面的程序段使指针变量p指向一个储存整型变量的储存单元,则应填入____:int *p;p=____malloc(sizeof(int));A.int B.int* C.(*int) D.(int *)答案:D问题:我选的B,解释一下,多谢!

    提问者:grt627

    发布于2010-12-07

共1个回答
  • 水盟之家 丨Lv 0
    第一道题:"="的优先级比后缀的"--"高,因此会先进行赋值运算再进行自减运算~~~,你可以将y=(*++p)--;看做是d=*++p;y=d--;这样你就比较理解它的运算顺序了。第二道题:alloc函数返回的是一个内存指针,(struct sl)表示的是强制类型转换为s1结构类型的普通变量,普通变量跟指针变量明显就不匹配了;而(struct sl *)表示的是强制类型转换为s1结构类型的指针变量,刚好与alloc函数的返回值类型相关。第三道题:在C或者C++中,强制类型转换的格式要求是:(类型名)表达式再结合题干要求,答案就不难看出来了
    +1 2010-12-07 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。