cpp中的递增运算符++和递减运算符--

本文详细介绍了C++中前置递增运算符(如++x)和后置递增运算符(x++)的区别,强调了它们在表达式中的不同影响时机。尽管对于内置类型两者效果相同,但在用户定义类型中,前置递增可能更高效。文章通过示例代码展示了如何使用这两个运算符,并警告了混合使用可能导致的不确定性,建议避免在表达式中混用以确保清晰性和正确性。
摘要由CSDN通过智能技术生成

这两个运算符执行两种极其常见的循环操作,将循环计数加1或减1。这两个运算符都有两种变体,前缀版本位于操作数前面,如++x,后缀版本位于操作数后面,如x++。两个版本对操作数的影响是一样的,但是影响的时间不同。

#include <iostream>
int main()
{
    using std::cout;
    int a = 20;
    int b = 20;

    cout << "a   = " << a << ":   b = " << b << "\n";
    cout << "a++ = " << a++ << ": ++b = " << ++b << "\n";
    cout << "a   = " << a << ":   b = " << b << "\n";
    // std::cin.get();
	return 0;
}

a++意味着使用a的当前值计算表达式,然后将a的值加1;而++b的意思是先将b的值加1,然后使用新值来计算表达式。

y = (4+ x++) + (6+x++)

4+x++不是一个完整的表达式,因此cpp不保证x的值在计算子表达式4+x++后立即增加1.在这个例子中,整条赋值语句是一个完整表达式,而分号标示了顺序点,因此cpp只保证程序执行到下一条语句之前,x的值被递增两次。cpp没有规定是在计算每个子表达式之后将x的值递增,还是整个表达式计算完毕之后才将x的值递增,应避免使用这样的表达式。

对于内置类型,采用哪种格式不会有差别,但对于用户定义的类型,如果有用户定义的递增和递减运算符,则前缀格式的效率更高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值