C语言问题。 *p+i与*(p+i)有什么区别啊?
3个回答
展开全部
写个C程序解释吧。
#include<stdio.h>
int main()
{
int a[32]={9,8,7,6,5,4,3,2,1}, *p = a;
printf("%d %d\n", *p + 1, *(p + 3));
return 0;
}
输出为 10 6;
为什么呢?因为 *p = a 把 a 数组的首地址的值放在 p 处,所以p = a,*p =a[0]= 9 => *p + 1 = 9 + 1 = 10.
p + 3 就是a数组的首地址往后移动3位,即p = a[0], p + 3 = a[3]的值,就是6了。
追问
谢谢啦〜
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
地址加i,地址变了。
地址
地址
追答
1的地址2,地址变成2加i
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询