数组 *(a i) 和a[i] 引用
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/09 10:22:00
abigailabigailsabstainabstainedabstainerabstainersabstainingabstainsacclaimacclaimedacclaimeracclaim
A答案:就是w[0][2],合法B答案:就是w[2][0],下标越界,不合法C答案:就是w[0][0],合法D答案:就是w[1][2],合法
Da[10-10],这个是对的,也就是访问a[0]ABC都是错的.int[10];则对a数组元素的正确引用是a[10-10]你写错了吧,题目应该是:int[10];则对a数组元素的正确引用是a[0-1
/ei/-------A,H,J,K/i:/-------B,C,D,E,G,P,T,V/ai/--------I,Y/a/-------R/e/-------F,L,M,N,S,X,Zu/-----
第一个越界了,最多能到4第二个莫名其妙第四个没指定数据不行希望回答能帮到你,哪里不清楚再问.再问:不是说第一个可以没有数据吗再答:那是指传递一维数组的时候就要放空,
p[i],*(p+i),x[i],*(x+i)
数组名为首地址,是常量不能自加.如果是指针就可以.
这里所说的不能加减是指这样:a=p+2;这种形式的,而不是图上那种.举个简单的例子:constinta=2;a是一个常量,你不能改变其值.但是intb=a+2是正确的.指针同样理解.再问:你的意思是不
选择:D数组下标从0开以,最大下标是定义的数组长度-1下标值不能是浮点数只能是[]而不能是()
a[2][4]越界了最后一个元素a[2][3]引用时下标从0开始第一行a[0][0]a[0][1]...第三行a[2][0]a[2][1]...
选BAp本身就是数组c的首地址了,再对它取地址没有语法错误,但是也没有实际意义Bp+3是c[3]的地址,*(p+3)就是c[3]Cc[5]数组下标越界Dc也是数组c的首地址,同A
p的类型是int**,肯定要要用两个**两解引用.[]符号也有解引用的作用.所以C答案是正确的
C是对的A的那个4已经超出范围了B,没有这种写法D不能用圆括号,只能用方括号
指针变量pt指向a数组!*pt相当于a[0];*(pt+1)相当于a[1];*(pt+1)[2]相当于*(pt+3);*(pt+3)等价于a[3];显然a[3]不存在!所以选项B非法!
a数组第1行第4列元素的值
a表示数组的首地址,可以把a数组看成是一个元素为一维数组的数组(可能有点难理解,可是把a看成一个由4个元素组成的数组,每个元素是一个由5个int型数组成的数组).a+1表示的是将a的地址向后移一个元素
选C.p的类型是int(*)[3],是指针的指针.C选项相当于p[1][1].B选项错,它相当于p[2][1],数组的第一个坐标越界了.
#include#include#include#includeusingnamespacestd;voidgetm(inta[],intn,int&max,int&min){inti=0;max
答案是D因为a不是int**类型的
仅供参考,肯定不止这一种用法:inta[10][10];voidtest(int**i){cout