平时没注意的++运算符

请看下面一段代码,是很简单的运算代码,摘自不知道哪位大侠写的C语言面试题中的题目,虽然简单,特别对于初学者来说不小心还是会搞错,我刚开始做的时候就搞错了。

int main()
{
    int x,y;
    x = 20;y=35;
    x = x++ + y++;
    y = ++y + ++x;
    printf("%d,%d/n",x,y);
    return 0;
}

以上代码实现通过计算,将x,y值求出并打印出来。

首先,x,y进行赋值,分别是20,35.计算的过程是这样:理解这段代码需要知道运算符++ 比运算符+优先级高,x++是先运算在进行++的操作,所以对于第5行代码,执行过程为,x+y值为55,然后执行x++和y++这样,x,y的值就分别为56,36。

其次,执行第6行,由于++的优先级比+的优先级高,所以先执行++y和++x,这里需要因为++在变量前是表示先进性自加的意思,所以先对x,y都进行自加,所得出的结果++x,++y为57,37,所以第6行的y值的结果为94。

最后打印出来的结果为57,94

总结:应该要注意的是++和+的优先级,另外自加运算符的使用++x和x++是由区别的,还有最重要一点是在第5行位置是先得出结果再进行++运算的。

如果有错误,请留言指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值