int a[5]={1,3,5,7,9},*p;p=&a[2];printf("%d ",*(++p));printf("%d\n",p-a); 结果为什么为 7 3

 我来答
匿名用户
推荐于2017-09-20
展开全部
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);
PFanAya
2011-06-11 · TA获得超过243个赞
知道小有建树答主
回答量:188
采纳率:0%
帮助的人:233万
展开全部
#include <iostream>
using namespace std;
int main ()
{
int a[5]={1,3,5,7,9},*p;
p=&a[2];//这是第3个元素5的地址
printf("%d ",*(++p));//p先自增 是指向7的地址 &地址解析 即输出7
printf("%d\n",p-a); //a是1的地址 p是7的地址 3-0=3
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式