标签:工具 不同的 而在 图片 mic 站长 pre 编译器 inf
上一篇的习题中:
定义一个变量x=10;y = x++ + ++x * 3 + --x + x--
当使用clion编译时,结果是60,是因为编译器会把一行当成一个算式,而不是一步一步按照优先级进行运算,所以无论是++x,x++,--x还是x--,都不会进行运算,这里的4个运算都为10,所以结果为10 + 30 + 10 + 10=60,而在站长工具的在线代码编译环境当中,是会根据运算优先进行运算,所以上一篇我得到的结果是68而不是60;
而这种运算,会根据不同的编译环境,不同的编译器而会产生不同的结果,只需要了解其中的运算优先级即可,不必过多的纠结,因为这个是没有太大的意义的;
ps:来自C++从业者的教导
C语言运算符优先级:点击前往
1 void main(){ 2 /* C语言成长之路25:加加与减减练习 3 * 4 */ 5 int a = 10; 6 int b = a++ + a++; 7 printf("b = %d",b); 8 /* 过程: 9 * 1--> 先运算后面的a++,再运算前面的a++,因为是后++,右边的值还是10,而左边的值是进行过++的,所以为11 10 * 2--> 所以结果就等于11 + 10 = 21; 11 */ 12 int c = ++a + ++a; 13 printf("\nc = %d"); 14 /* 过程: 15 * 1--> 由于前面已经进行过两次的a++了,目前的a的值已经变成了12 16 * 2--> 两次运算都是++a,先计算++部分,所以a又在原来的基础上+了2,最后a的值变成了14,加起来是28 17 */ 18 };
标签:工具 不同的 而在 图片 mic 站长 pre 编译器 inf
原文地址:https://www.cnblogs.com/akne/p/13347675.html