C++中 有int a[10] ;int *p; p=a;则(*p)++,++(*p)什么意思?

 我来答
Joshion2008
推荐于2018-03-07 · TA获得超过152个赞
知道小有建树答主
回答量:175
采纳率:0%
帮助的人:132万
展开全部
int a[10]就是声明一个长度为10的Int类型数组

int *p 就是声明一个指针,这个指针在栈里,其字节长为4,就是地址。只不过这个地址是指向int类型的
p = a就是让p指向刚才的那个数组的头(第一个元素)
(*p)++这个要分两部分说,*p就是通过p这个指针指向的空间的数据,那么*p就是a[0],然后再++,其实就是a[0]++
现在就是a[0]++和++a[0]的区别了,后++是右值运算符,其运算等级较低,低到什么程度?比赋值运算还低。
举例:int b = a[0]++,因为其是右值运算,那么其运算顺序是b = a[0],然后a[0] += 1;如果a[0]开始是1,那么b就是1,a[0] = 2;
但是左++就不一样了,其运算等级相当高,高的程度和!差不多。
yuhezcb0755
2013-06-24 · TA获得超过643个赞
知道小有建树答主
回答量:237
采纳率:0%
帮助的人:115万
展开全部
(*p)++和++(*p)如果没有和其它语句一起使用, 则意思是一样的, 取出a[0]的值, 然后将这个值+1; 如果是其它表达式.
如a = (*p)++;与a = ++(*p); 则a的值有点不同, 一个a先取值后加1, 一个是先加1再赋给a
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
明渊阁
2013-06-24 · TA获得超过450个赞
知道小有建树答主
回答量:300
采纳率:0%
帮助的人:237万
展开全部
p=a表示将p指向数组a的首地址,意即p指向a[0];

*p则代表a[0],它的意思是取所指向地址的元素;

(*p)++指的是a[0]++,即将a[0]后自增1;

而++(*p)指的是++a[0],即将a[0]后自增1。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式