首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
若有定义;int w[3][5];,则以下不能正确表示该数组元素的表达式是( )。
若有定义;int w[3][5];,则以下不能正确表示该数组元素的表达式是( )。
admin
2013-02-23
60
问题
若有定义;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全国计算机二级
相关试题推荐
已知inta=1,b=3则ab的值为
下列程序的运行结果为#include<stdio.h>voldabc(char*str){inta,b;for(a=b=0;str[a]!=’\0’;a++)if(str[a]!=’c’)
在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是()
阅读下面程序,则程序段的功能是#include"stdio.h"main(){intc[]={23,1,56,234,7,0,34},i,j,t;for(i=1;i<7;i++){t=c[i];j=i-
算法的时间复杂度是指
下列选项中小属于结构化程序设计方法的是______。
在数据库系统中,实现各种数据管理功能的核心软件称为【 】。
已知字符A的ASCII代码值为65,以下程序运行时,若从键盘输入:B33<回车>。则输出结果是______。 #include "stdio.h" main() { char a,b; a=getchar();scanf("Xd",&b); a=a-’A’
数据库技术的根本目标是要解决数据的
E-R图中,矩形表示()。
随机试题
用于对重要事项和重大行动作出决策或部署,其特点是影响大,指挥和导向作用明显的决定是()
下列关于PNH的说法,正确的是:()
氯丙嗪不应作皮下注射的原因是
诊断SLE的标记抗体是
行政案件审判组织形式与民事案件审判组织形式的不同之处是,行政案件的审理()
综合评价方法发展到今天已不下数十种之多,根据所采用的理论,归纳起来可分为三类,其中不包括()。
确定工程施工进度控制目标的主要依据包括( )。
人寿保险按照()划分,可分为死亡保险、生存保险和两全保险。
若r(α1,α2,…,αr)=r,则
我已经到了望九之年,可谓长寿矣。因此经常有人向我询问长寿之道,养生之术。我敬谨答日:“养生无术是有术。”因此,我首创了三“不”主义:不锻炼,不挑食,不嘀咕,名闻全国。我这个三不主义,容易招误会,我现在利用这个机会解释一下。我并不绝对反对适当的体育
最新回复
(
0
)