c++的指针自增的使用,自增和*的混合运算

理解C++中的指针自增运算符优先级至关重要。本文通过分析两种混合运算表达式`++*p++`和`++*++p`的执行过程,详细阐述了指针在自增操作后的移动和值的变化,帮助开发者深入掌握指针自增的用法。
摘要由CSDN通过智能技术生成

弄清楚运算符的优先级,对于一个程序员来说是极为重要的,虽然运算符的优先级是基础知识,但是很多时候我们会因小失大,所以学习一门语言一定要把基础东西弄懂,切不可得过且过!

下面我谈谈两个简单式子,并讨论他们的计算过程

由运算符的优先关系,++的优先级比*高

1.++*p++;

先计算p++,指针要往下移动一位,但注意这时候的++是后自增,所以得在这个表达式执行完p才是真正地向下移动了一位,此时*(p++)=*p,然后才进行前面的++运算,这时候*p的值加上1,所以在下面的例子中,h会加上1变成i;


2.++*++p;

先计算++p,这时候的++是前自增,所以此时的p已经向下移动一位,即已经移动到字符e的位置,*取值之后再进行++号运算,e+1=f,因为第一位h并没有做任何运算,所以值不变。


int main()

{
char str[]="hello world";
char *p=&str[0];
char *tem=&str[1];


//第一段代码  输出的值为 ello world   i

        +
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值