若有inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5的语句为( ).
A:cout<<*(a+5);
B:cout<<p[5];
C:cout<<*(p+5);
D:cout<<*p[5];
为什么?能详细回答下吗?
追答a是数组的首地址,p=a也指向数组的首地址,所以a和p使用起来是一样的,*(a+5)==p[5]==*(p+5)==a[5]==5,而*p[5]表示解索引p[5],不能这么使用,因为p[5]是int型,不是int*型
本回答被提问者采纳若有int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5的语句
答案:D 对于数组a[10],a就是该数组的首地址,定义指针p赋值为a,那么a和p的操作基本相同:a[5]=p[5]=*(a+5)=*(p+5),对于D选项,p[5]是个int值,再取*就不对了。
若有int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5
题有问题样,如果p为指针变量,应该是p=a;那答案就是D
设有语句:int a[10]={0,1,2,3,4,5,6,7,8,9},i,*p=a;,
答案是D,D的正确形式应该为:*(a+i)前面多了个星号。A:a[0]B: a[i]C: p[i]
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示a数组元素的表达式是...
因为数组的下标是从0开始的,也就是说a[0]=1,a[1]=2,a[2]=3,a[3]=4,a[5]=6,a[6]=7,a[7]=8,a[8]=9,a[9]=10。所以B不对;p 和 a 都是指向数组a说地址的指针,它们指向的都是a[0];a[p-a],因为p=a=a数组的首地址,所以 p-a =0,a[p-a] = a[0]。
...x[10]={0,1,2,3,4,5,6,7,8,9},*p1;则数组不为3的表达式是( )_百度...
答案是C..我解释是这样,供你参考:B解释,x为数组首地址,+3就是向后移动三个地址,指针指向数值3的位置,将地址赋给指针变量P1,因为运算符++比*高一级,所以先执行P1++,但是看清楚,这里的P1的地址值没变,接着执行*运算符,取值就为3... 你的问题在于:P++在此次运算并不会加1,只能在...
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示a数组元素的表达式是...
因为数组的下标是从0开始的,也就是说a[0]=1,a[1]=2,a[2]=3,a[3]=4,a[5]=6,a[6]=7,a[7]=8,a[8]=9,a[9]=10。所以B不对;p 和 a 都是指向数组a说地址的指针,它们指向的都是a[0];a[p-a],因为p=a=a数组的首地址,所以 p-a =0,a[p-a]= a[0]。
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d
是4,p指向数组的首元素,+3指向首元素后的第三个
若有以下定义和语句: int a[10]={1,2,3,4,5,6,7,8,9,10},p=a; 则不...
即a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],正好10个,没有a[10],所以a[10]就是不能表达这个数组元素。C、*a ---数组名a中保存的是数组的首地址,*是取单元中的值,*a就是取数组首地址中单元中a[0]的值。D、a[p-a] --- p指向的是数组a,因为p...
11、若已定义: int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a, i; 其中 0 ≤...
d.因为数组定义时是数组内的个数,但是数组是从a[0]开始到a[9]的
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;以下不能表示a数组元素
这题应该选D A p指向a,那么*p就是a[0]C ++(后缀) 的优先级比 *(取值) 高 故先进行++ 然后再进行取值 p++ 就是 a[1]D *p-a 是 a[0]-a 值不确定