为您找到"

int a[5]={1,2,3},*p=a;则*(p+1)的值是2 求解释

"相关结果约100,000,000个

假设有说明int a[]={1,2,3,4,5,6},*p=a;则表达式*(p+1)的值为

假设有说明int a[]={1,2,3,4,5,6},*p=a;则表达式*(p+1)的值为2

int a[ ]={1,2,3,4,5},*p=a,i;且0<=i<5,为什么a[p-a]是对数组

inta[5]={1,2,3,4,5},i//定义int数组a->5个连续的int存储空间首地址,按顺序值为1,2,3,4,5;int*p=a;//定义int指针,并初始化值为a,指向数组首地址p+=2;//指针按int类型方式向下偏移2位,指向从a[0]->a[2],值从1->3for(i=0;i==0;i++)//for循环i初值为0(循环入口),...

c++中 int a[5]={1,2,3,4,5},i;int *p=a;p+=2;for(i=0;i==0;i++...

int a[5]={1,2,3,4,5},i //定义int数组a -> 5个连续的int存储空间首地址,按顺序值为1,2,3,4,5 ;int *p=a;//定义int指针,并初始化值为a,指向数组首地址 p+=2;//指针按int类型方式向下偏移2位,指向从a[0]->a[2],值从1->3 for(i=0;i==0;i++) //for循环i初值为...

int a[5]={1,2,3,4,5},*p; p=a; printf("%d %d",*p,*(p++)); 为啥输 ...

因为 *(p++) 用的是 后缀加加,按规定,在表达式内不自增,出了表达式后再自增。所以:printf("%d %d",*p,*(p++));就等于:printf("%d %d",*p,*(p));输出 1 1 再执行 p=p+1; (地址增 1*sizeof(int) ).--- 你可以打印地址,看p指向的地址变化 printf("%p\n",p);pri...

int a[]={1,2,3,4,5}; int *p=a; printf("%d\n",*p); 为什么结果是1呢...

输出顺序按照从右往左运行,最后的是*P,因为*p=a,所以*P输出数组的第一个元素 最后的*p=1;--(*p)先自减=0,*p=0;p--先复制=0;p=0;(*P)++先复制=0;(++p)中++p自加1,变为坐标为1的元素,a[1]=*(++p)=2;p此时也指向a[1]的,*p=2;...

...关于指针的,若有说明语句"int a[5],*p=a;",则对数组元素的正确引用...

下来看看这个程序的作用:int a[5],*p=a;前半句int a[5]是声明一个整型数组a,它有五个元素,分别是a[0]、a[1] 、a[2]、A[3]、a4[4],系统为她们分配五个连续的储存空间。后半句*p=a,定义了一个指向整形变量的指针p,并且把a[0]的地址赋值给p,所以p的值是a[0]的地址,我们也...

c语言int a[ ]=(1,2,3,4,5,6) *P=a,什么意思,*P=1?

P=a 把数组a的首地址赋值给指针p,a数组的首个元素 a [0]的地址就是数组a的首地址,所以p指向的是a [0],那么对P解引用也就得到了a[0]的值就是1

若已定义:int a[5]={0,1,2,3,4},*p=a,则以下输出结果为3的是()

选B。p[3]等同与a[3]。数组的名字a,是表示数组首地址的地址常量。其值就是&a[0];p=a;那么p的值也是&a[0];p和a都表示地址,所以*就是取地址对应的值。(a+2)就是首地址值往后+2的地址,也就是&a[2],那么*(a+2)就是a[2]的值2。同理*(P+2)也是a[2]的值2。p[3]是不...

定义int a[ ]={1,2,3,4,5,6},*p=a;表达式(*++p)++的值是___.

是2 由于*p=a,p指向了a的第一个元素a[0](*++p)++ 这个先执行++p p指向a[1]p就是a[2]转化为a[2]++,由于++先算表达式值在自加1,所以这个表达式的值为2

int a[5]={3,2,1,5},*p=a; ++p; *p=*p+2; printf("%d %d %d\n",*(+...

int a[5]={3,2,1,5},p=a; //把数组a的首地址赋给p ++p;//指针移动到第二个数字也就是a[1];p=*p+2;//第二个数字+2;printf("%d %d %d\n",*(++p),//输出第三个数 (p++),输出第三个数后+1 (++p)输出第五个数 );...
1 2 3 4 5 6 7 8 9

相关搜索