值为2.p=a;语句之后,p指向的是数组a的第0个元素,也就是a[0];(*++p)++表达式:根据运算符优先级,先计算括号内内容,++p,首先自增p,此时p指向第1个元素,即指向a[1];然后通过*得到a[1];后置++不立即改变a[1]的值(值为2),而在此表达式之后a[1]值为3。求采纳为满意回答。
你可以把()当成一个返回值和输入值相等的函数 没问题的,虽然一般没有人这么说这两个意义不同int(*p)【4】表示p是个指针,指向一个存储四个int数据的空间,这就是所谓的数组指针,这里的括号只是优先级作用,没有函数的意思int *p【4】 表示p是个数组,它有四个元素,元素类型是int *指针,此之...
C语言数组从0开始编号. 所以2行2列值为 a[1][1]以a访问,选项中没有正确的.p为一维指针, 指向第一个元素地址.a每行4个元素,所以 a[1][1]为数组a中的第6个元素(4+2)所以 就是p[5]选B 答案
1 2 3 4 5 6 7 8 9 10p当前指向的位置是 a[3]中的内容,对应的内容就是 4p 的初值就是4, *(p+5)= 9include <stdio.h>int main (int argc,char *argv[ ]){int a[10]={1,2,3,4,5,6,7,8,9,10};int *p;p=&a[3];printf("%d\n",*(p+5));return 0;}结果就...
(p+2)的值是4 验证代码如下:include <stdio.h>int main(){int a[5]={1,2,3,4,5},*p;p=a+1;printf("%d",*(p+2));return 0;}执行结果:原理如下:a+1是数组a[1]的地址 p=a+1就是指向a[1]的地址 因此后面p+2,就是指向a[3]的地址 (p+2)就是a[3]的值=4 如果...
main(){ int a[]={1,2,3,4,5,6};int *p;p=a;printf("%d ",*p); //数组a第一个元素是什么,是:1 printf("%d ",*(++p));//第2个元素是什么,是:2 printf("%d ",*++p); //第2个元素自增1是什么,是:3 printf("%d ",*(p--));//还是问第2个元素是几...
你的定义写错了,把大括号写成中括号了 p=a;,则指针p指向a[0]p+4=*(&a[0])+4=a[0]+4=2+4=6 (p+4)=*(a[0]+4)=*(&a[4])=a[4]=10 答案
址,也就是赋值给a[5],这个命令和a[5]=a[10];这个时候,数组的成员的值已经发 生 了变化,分别是a[]={1,2,3,4,5,11,7,8,9,10,11,12,};*/ q--; /* q由原来指向a[5].变成了指向a[4]所以 *q==5;*p==11 int *p=a+5;//p指向6q=p; //q指向...
他的行下标为2,就是个两行三列的矩阵了你可以用这个测试一下啊//C++版本的include <iostream>using namespace std;void main(){static int b[5], a[ ][3] =;cout<<b[4]<<endl;cout<<a[1][2]<<endl;}//C语言版本的include <stdio.h>void main(){static int b[5], a[ ][3]...
a为2行4列数组 a= 1 2 3 4 5 6 7 8p为每行4个元素的数组指针,指向a[1]即a的第二行.p[0][0]就是a[1][0]也就是5 选C