C语言自增++/减--运算符的优先问题+例题

PTA上错了道选择题:
在这里插入图片描述
首先0前缀代表八进制,所以y=10 D(十进制),那么问题来了,答案不选C选什么?

我去查了下关于自增运算符的优先级问题(优先级不同于优先),++/–的优先级大于 *
所以按理说应该x先++再 * y(如果你这么想了请允许我偷偷笑下),正常人都会这么想
但其实计算机里自增是有优先与否的问题的,即x++不同于++x

在这里抄一段大佬的原稿:
我开始寻找答案。在C++ Primer里面有提到++使用说明,按我的理解翻译过来即:后置形式的自增自减(形如x++, x–),先保存操作数原来的数值,然后对操作数进行自增自减操作,然后返回之前保存的操作数的值即未进行自增自减操作的值。或者通俗来说即:先使用x的值进行运算,最后再自+1(还是++x这样好用,直接先自+1再做其他运算呗)。

作者:ds1231h
来源:CSDN
原文:https://blog.csdn.net/ds1231h/article/details/50104365
版权声明:本文为博主原创文章,转载请附上博文链接!



所以x++其实就是先进行x的运算,然后再把x的值+1;++x就是把x先+1,再进行运算
不难理解但很容易搞混,归为重要知识点
(所以那道题选B,输出为10,同时x变量的值已经变为2了)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值