为什么是下面结果

来源:百度知道 编辑:UC知道 时间:2024/05/15 14:08:14
#include<stdio.h>
void main()
{int x=5;
int m;
m=(--x)+(++x);
printf("%d\n",m);}

M为什么等于10
通过查看汇编代码得知:
运算顺序应为:
--x; //x变为4
++x; //x变为5
m = x + x; // 5 + 5 = 10

m=(--x)+(++x)
=4+6
=10
自加自减运算符号虽然在前,但是注意括号运算符!从括号里面出来数就变了!

x+1=6 -> x-1=4 -> m=6+4=10 -> x=x+1=6 -> x=x-1=5

括号在起很大的作用

我也来说两句,自加自减运算符分为前自加和后自加,像:(++i)就是先给i自加,然后再运算;(i++)就是先参加运算,后i加一