C语言成长之路25:加加和减减练习

上一篇的习题中:

定义一个变量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语言成长之路25:加加和减减练习

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 };

 


原文链接: https://www.cnblogs.com/akne/p/13347675.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    C语言成长之路25:加加和减减练习

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/369252

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 下午6:51
下一篇 2023年3月2日 下午6:51

相关推荐