若有以下定义 ,则p 5表示
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/23 18:44:50
inta[2][3],*p[3];因为[]的优先级比*高所以p是一个数组,这个数组存放的是指向整数的指针.即存放的是一个整数变量的地址.而&a[1][2]正好是一个整数的地址.所以p[0]=&a[1]
*q就是访问q所指向的地址里面的值;但是此时的q已经为空了.所以这样访问取值为非法.程序会崩溃.选A采纳哦
第一次是指针赋值,第二次是指针的引用对象赋值,所以A错r的地址赋给了p,不是p所指的存储单元,B错赋给的是p指向的变量,C错选D
不能表示a数组元素的表达式是(B)a[10])----因为数组a的最大下标只能是9,即a[9],a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],一共
'f'a[]首先是一个数组,strcpy操作改变了前4个元素,但第5,6,7元素没有被改变,所以还是'e''f'和'\0'
话说只有C是正确的吧A和B使用了非整形表达式,switch里只能用整形表达式,字符会被转换成整形,case里只能用常数,并且各异而D的switch后面有个分号switch(a-b);再问:话说只有D是
floatx[3][3]={{1.0,2.0,3.0},{4.0,5.0,6.0}}定义三行三列,只初始化第一行和第二行,则第三行三个数据被默认设置为0x[2][2]就是指第三行第三列的数据,值为0因
inta[3][2]={1,2,3,4,5,6}产生的结果是a[0][0]=1,a[0][1]=2,a[1][0]=3,a[1][1]=4,a[2][0]=5,a[2][1]=6根据数组的表示法,数组
这里所说的不能加减是指这样:a=p+2;这种形式的,而不是图上那种.举个简单的例子:constinta=2;a是一个常量,你不能改变其值.但是intb=a+2是正确的.指针同样理解.再问:你的意思是不
正确答案是c因为调用时只要在形参位置用具体的数字或数组名代替即可.直接写函数名不用写void又因为oid表示函数没有返回值所以不能让k=fun(1,1.5)正确用法fun(1,1.5)
表达式从右向左计算也就是程序中的y+=y-=m*=y;相当于:m=m*y;y=y-m;y=y+y;所以程序的执行结果是:
首先,指针是特殊的变量,比如int*p;如果不加*号,你可以把p当做一个普通变量,而这个变量中存放的东西是一个内存地址.如果你只想得到这个地址,直接用p,但是如果你想得到这个地址中存的数据内容,就要加
选Caa是数组名的同时也是这个数组首元素的首地址,也就是aa=&aa[0]找aa[1]的地址就是首地址偏移一个整形位,所以AD对B就是对元素aa[1]取地址所以ABD对C中&小于后置++的优先级所以&
指针变量pt指向a数组!*pt相当于a[0];*(pt+1)相当于a[1];*(pt+1)[2]相当于*(pt+3);*(pt+3)等价于a[3];显然a[3]不存在!所以选项B非法!
答案是B,因为w代表的是数组第0行的地址,而*w取的是第0行第0列的地址A等价于w[0][3]B*(w+1)虽代表的是第一行的地址,但没有*(w+1)[4]这种表示C等价于每1行第0列个数,即w[1]
你好楼主!首先,你要知道*q[4]中的q是一个数组的指针,也就是说q是指向一个数组,并且这个数组中有4个元素的.我们看一下b[4][6],这是一个二维数组,其实我们可以把他拆分一下,也就是b是一个含有
C)元素a[6]的地址
3123一行456一行700一行
[1]是b[1][0]的地址,不是元素b[0][3],3超过界限2b[2][2]第一个2超界限b[1][1]正确b【2】【3】,元素范围b[0][0]-b[1][2]