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

2021-04-12 15:29

阅读:435

标签:工具   不同的   而在   图片   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 };

 


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

标签:工具   不同的   而在   图片   mic   站长   pre   编译器   inf   

原文地址:https://www.cnblogs.com/akne/p/13347675.html


评论


亲,登录后才可以留言!