main() { int a[]={1,2,3,4,5,6,7,8,9,0},*p ; p=a;pri8ntf("%d",*p+9); } 次程序的结果为什么是9?
展开全部
我运行出来结果是10 环境是VS2008
int a[]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%d",*p+9);
int a[]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%d",*p+9);
追问
您能详细说一下运算过程吗?谢谢!!
追答
p=a就是将数组a的首地址赋给p
然后*p指向数组a中第一个元素 1
由于指针运算符(*)的优先级高于+,所以*p+9等价于(*p)+9 = 1+9 = 10
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个结果对吗?应该是10才对。
追问
10是对的,我打错了。您能给详细说一下程序的运算过程吗?谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询