*与++优先级
【摘要】
前缀递增递减和*优先级相同,从右到左;
后缀递增递减比前缀优先级高,从左到右。
比如
int arr[5] = { 1,3,5,7,9 };
int *p = arr;
12
*++p:p先自+,...
前缀递增递减和*优先级相同,从右到左;
后缀递增递减比前缀优先级高,从左到右。
比如
int arr[5] = { 1,3,5,7,9 };
int *p = arr;
- 1
- 2
*++p:p先自+,然后*p,最终为3——马上改变指针,*下一个指针
*p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1] ————之后改变指针,*原数据,指针++
*(p++):效果等同于*p++ ——之后改变指针,*原数据,指针++(++执行完赋值语句再+)
(*p)++:先*p,即arr[0]=1,然后1++,该语句执行完毕后arr[0] =2——不改变指针,数据++
++*p:先*p,即arr[0]=1,然后再++,最终为2——不改变指针,++数据
只有++(*p),(*p)++,++*p使指针的位置不变,改变数组的原始数值,
其他的任何情况都是指针指数组的下一个,指针的位置+1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
文章来源: blog.csdn.net,作者:嵌入式与Linux那些事,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq_16933601/article/details/103351725
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)