int a[5]={1,3,5,7,9},*p;p=&a[2];printf("%d ",*(++p));printf("%d\n",p-a); 结果为什么为 7 3
发布网友
发布时间:2022-05-12 05:35
我来回答
共2个回答
热心网友
时间:2023-11-22 04:06
int
a[5]={1,3,5,7,9},*p;
*p=a[2];
//
++p是先将p执行++,再用p进行运算;而p++是先将p进行运算,再执行++
//
这里的++体现为指针指向地址的运算,即以一个int单元为单位1进行++操作
printf("%d
",*(++p));
//
p-a的运算也是以一个(int)单元作为单位1进行计算
printf("%d\n",p-a);
热心网友
时间:2023-11-22 04:07
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)输出第五个数
);