首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
若有定义;int w[3][5];,则以下不能正确表示该数组元素的表达式是( )。
若有定义;int w[3][5];,则以下不能正确表示该数组元素的表达式是( )。
admin
2013-02-23
79
问题
若有定义;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全国计算机二级
相关试题推荐
假设有如下定义:structa{intn;floatk}data,*p;若要使p指向data中的成员n,正确的赋值语句是
下列程序的运行结果为【】。main(){intx=2,y,z;x*=3+1;printf("%d,",x++);x+=y=z=5;printf("%d,",x);K=y==Z;pri
mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。intmystrlen(char*str){inti;for(i=0;【】!=’\0’;i++);
在关系模型中,把数据看成一个二维表,每一个二维表称为一个【】。
若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是
Jackson方法是一种面向【】的结构化方法。
程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量s总是作为头指针向链表的第—个结点。若有以下程序段 q=s; s=s->next; p=s; while(p->next) p
对下列二叉树进行中序遍历的结果是______。
结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、【】和限制使用goto语句。
已知小写字母a的ASCII码为97,大写字母A的ASCII码为65,以下程序的结果是______。main(){unsignedinta=32,b=66;printf("%c\n",a|B);}
随机试题
设z=yx
百合科植物,药用部分为根茎薯蓣科的根茎
2006年3月20日晚韩某和本班同学刘某在电影院门口盗窃自行车一辆,商定各骑2个月后将车卖掉,得款均分。2006年5月19日韩某14岁生日,16岁的刘某骑自行车去韩某家参加聚会的途中被联防人员查获,并供出自己和韩某盗窃的全过程。为此,两人所属的区公安局作出
以下应当填报环境影响登记表的项目有()。
下列选项中,()是全面风险管理、资本监管和经济资本配置得以有效实施的基础。
甲公司2008年年末库存笔记本中有合同部分应计提的存货跌价准备为()万元。
关于我国三大平原,下列说法错误的是:
志愿服务是指志愿贡献个人的时间及精力,在不求任何物质报酬的情况下,为改善社会、促进社会进步而提供的服务。志愿服务精神的精髓是()
对数据库数据的存储方式和物理结构的逻辑进行描述的是
A、 B、 C、 D、 E、 E
最新回复
(
0
)