C语言运算的问题
例1
main()
{int a=5;
printf("a=%d",(a++)*(++a)+(a--)*(--a));
}
最后A=70 (表达式是从左到右的)
例2
{int a=5;
printf("a=%d (a--)+3=%d a=%",a,(a--)+3,a);
}
例2中的运算为什么是从右到左
----------------解决方案--------------------------------------------------------
一个是求解一个表达式,一个是多个,当然有不同了.
求解一个表达式不就是从左到右了.但后者就要根据编译器而定了.
----------------解决方案--------------------------------------------------------
这样的代码如果不了解编译器是很容易把自己搞晕的。
----------------解决方案--------------------------------------------------------
第一个是表达式,第二个是多个这是不同的
----------------解决方案--------------------------------------------------------
如果用TC2.0,列2不也是从左到右运行的?
----------------解决方案--------------------------------------------------------