C/C++ -- 分析++和--

本文详细解析了C/C++中++和--运算符的功能及使用场景,包括它们作为前缀和后缀的不同行为,与指针运算符*的优先级对比,以及在用户自定义类型中的实现细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.C/C++的++和--运算符的作用是递增和递减,都可以作前缀或后缀表达式:

int a = 1,b,c;
b=a++;//1
c=++a;//2

1和2的区别在于1中a的值赋给b后,a的值加1,所以b=1;2中a开始是2,a先递增加1然后赋值给c,c=3;最后a=3。

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

2.这个表达式的结果在不同的系统中运行的结果是不同的,因为C/C++选择何时把++(--)运算符用到变量时是以“;”来确认的。C++不保证是在(4 + x++)后x的值立刻增加1,C++只保证上式结束时x的值增加了两次。

3.和指针运算符*的优先级比较:前缀递增和*运算符的优先级相同,遵循从右到左的结合方式,后缀递增的优先级高于前缀递增,但后缀递增以从左到右的方式进行结合。

double x = *++pt;

pt是指针,上式的意思是先把指针加1即指向下一个元素,然后将指向的元素的值加1。

4.对于用户自定义的类型来说,前缀的运算效率更高。后缀运算的实现需要两步(1)复制对象,得到对象副本(2)对象加1,返回复制的副本







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值