关于 C/C++ ++a a++ --a a-- 自增自减

11 篇文章 1 订阅

对于刚接触C/C++来说,++a a++ 和 --a a--或许会有些迷糊.

++(递增运算符)    --(递减运算符)  各有两种出现形式  根据运算符的位置分为前缀和后缀形式

a++ b--  属于后缀形式  ++a --b 属于前缀形式

先程序根据结果我们再去分析:

#include <iostream>

using namespace std;
const int ArSize = 16;
int main()
{
	int a =10;
	int b= 10;
	cout << "++++++++++++++++Begin++++++++++++++++"<<endl;
	cout<<"a = "<<a<<endl;
	cout <<"a++ = "<<a++<<endl;
	cout << "a = " <<a<<endl;
	cout <<"***********a++和++a的分割线****************"<<endl;
	cout <<"++a = "<<++a<<endl;
	cout <<"a = "<< a <<endl;
	cout << "++++++++++++++++++End++++++++++++++++"<<endl;
	cout << "----------------Begin----------------"<<endl;
	cout << "b = " << b << endl;
	cout << "b-- = " << b-- << endl;
	cout << "b =  " << b << endl;
	cout << "***********b--和--b的分割线****************"<< endl;
	cout << "--b = " << --b << endl;
	cout << "b = " << b << endl;
	cout << "----------------End------------------"<<endl;

	return 0;
}

运行结果:

++++++++++++++++Begin++++++++++++++++
a = 10
a++ = 10
a = 11
***********a++和++a的分割线****************
++a = 12
a = 12
++++++++++++++++++End++++++++++++++++
----------------Begin----------------
b = 10
b-- = 10
b =  9
***********b--和--b的分割线****************
--b = 8
b = 8
----------------End------------------

由运行结果可知:

对于  a++ 和 b--  它的执行过程是先执行 cout<< 语句,再去自加1 的.

对于 ++a 和 --b 它的执行过程是先去执行 自加  再去 执行cout<< 语句的.

一般而言 在for循环和while循环中,这两种形式没有区别,对于指针这一块,需要小心了.

注意:在形式上两者区别不大,但在执行速度上有细微的差别,对于后缀需要做到工作是,先复制一个副本,将其加1,然后将复制后的副本返回,对于前缀,就没有这么麻烦,直接加1即可.因此,前缀的执行效率要高一点的.

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值