首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
若有定义;int w[3][5];,则以下不能正确表示该数组元素的表达式是( )。
若有定义;int w[3][5];,则以下不能正确表示该数组元素的表达式是( )。
admin
2013-02-23
56
问题
若有定义;int w[3][5];,则以下不能正确表示该数组元素的表达式是( )。
选项
A、*(*w+3)
B、*(w+1)[4]
C、*(*(w+1))
D、*(&w[0][0]+1)
答案
2
解析
通过—维数组名或指向维数组元素的指针来引用数组元素有两种写法:a
和*(a+i),它们是等价的。这是一种运算符之间的等价转换,就好像a-(b-C) 等价于a-b+c一样。知道了这种转换,我们可以将之扩展到二维数组甚至任意维数组上来。因为[]运算符的结合性是从左至右的,所以w
[j]等价于(w
[j],此时可以先将任意一个[]运算符转换为指针形式为:(*(w+i)[j]或*(w
+j),或者同时转换:*(*(w+i)+j)。上述几种形式都完全等价于w
[j]。选项A中,*(*w+3)可以看成*(*(w+0)+3),即w[0][3],是正确的。选项B小,因为[]运算符的优先级高于*运算符,所以*(w+1)[4]等价于*((w+1)[4]等价于 *(*((w+1)+4)),即*(*(w+5)+0),它等价于w[5][0],很明显它超过数组的范围了,故不正确。选项C等价于w[1][0],是下确的。选项D中,&w[0][0]是数组w第1个元素的地址,它等价于&*(*(w+0)+0),外面的&和*可以抵消,就好像先乘以个数,然后再除以这个数一样。所以,&w[0][0]等价于*(w+0)+0。即*w。所以原式就变为*(*w+1)等价于w[0][1],这个也是合法的。综上所述,本题应该选择B。
转载请注明原文地址:https://kaotiyun.com/show/1HJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下列关于字符串的说法中错误的是
以下各选项企图说明一种新的类型名,其中正确的是______。
mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。intmystrlen(char*str){inti;for(i=0;【】!=’\0’;i++);
若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是
定义长度为12的数组,下面四种方法中正确的有【】。①intx[12];②intn=12;③constintn=12;④intx[]={1,2};int
设y是int型变量,请写出判断y为奇数的关系表达式【】。
算法的时间复杂度是指
在程序设计阶段应该采取【】和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,进而用某种程序设计语言写成程序。
数据库技术的根本目标是解决数据的______。
随机试题
焦虑障碍
把人力看成人员素质综合发挥的作用力,这种表达反映的是()。
移动通信是有线通信网的延伸,它由无线和有线两部分组成。其中有线部分完成网络功能,包括()等,构成公众陆地移动通信网PLMN。
新人职的教师非常关心自己对工作的适应性,最担心的问题是:“学生喜欢我吗?”“同事们如何看我?”“领导是否认为我干得不错?”。这说明他们正处于福勒所言的()的教师成长阶段。
Oceanographyhasbeendefinedas"theapplicationofallsciencestothestudyofthesea".Beforethenineteencentury,scienti
有关乳牙龋病的预防,错误的是()。
Youaregoingtoreadalistofheadingsandatextaboutsmartcardsandmobilephones.Choosethemostsuitableheadingfromt
ThehomelessmakeupagrowingpercentageofAmerica’spopulation.【B1】______,homelessnesshasreachedsuchproportionsthatlo
以下关于队列的叙述中哪一个是不正确的?
程序调试的任务是()。
最新回复
(
0
)