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);
*p=a[2];
// ++p是先将p执行++,再用p进行运算;而p++是先将p进行运算,再执行++
// 这里的++体现为指针指向地址的运算,即以一个int单元为单位1进行++操作
printf("%d ",*(++p));
// p-a的运算也是以一个(int)单元作为单位1进行计算
printf("%d\n",p-a);
展开全部
#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;
}
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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询