目录
加法运算顺序:
结论:
a++ ++a在加法中按如下顺序:
1.sum的值先加上a++中的a;
2.然后再进行++a中的++运算;
3.然后加上a中的a的值;
4.然后再进行a++中的++运算;
5.然后再加上++a中的a的值;
最后得到sum。
具体详情:
#include<stdio.h>
int main()
{
int a = 0;
int sum= (a++) + a + (++a);
printf("a的最后值是");
printf("%d\n", a);
printf("sum的值是");
printf("%d\n", sum);
}
运行结果:
步骤:
1.先加上a++中的中的a(0);
2.然后进行++a的++运算,a的值变成了1;
3.然后加上a中的a(1);
4.然后进行a++中的++运算,a的值变成了2;
5.然后加上a++中的a(2);
最后得到sum=3=0+1+2。
下面是另外一次测试,一样满足结论:
#include<stdio.h>
int main()
{
int a = 0;
int sum = (++a)+(a++) + a + (++a)+(a++);
printf("a的最后值是");
printf("%d\n", a);
printf("sum的值是");
printf("%d\n", sum);
}
运行结果:
1.先加上a++中的a(0)
2.然后进行++a中的++运算,a的值经过两次++变成2;
3.然后加上a中的a(2);
4.然后进行a++中的++运算,a的值经过两次++变成4;
5.然后加上++a中的a(4);
最后得到sum=10=4+0+2+4+0;
printf函数中的运算顺序:
结论:
一.在printf函数中运算是从右向左进行的;
二.a中的a的值和++a中的a的值是一样的,并且是进行完所有运算后才输出的;
具体详情:
#include<stdio.h>
int main()
{
int a = 0;
printf("%d %d %d %d %d", a++, ++a, a, a++, ++a);
}
运行结果如下:
运行顺序:
1.进行第5个的++运算,然后a的值变为1;
2.然后第4个位置输出的值输出为1;
3.然后进行第四个位置的++运算,然后a的值变成2;
4.然后进行第二个的++运算,然后a的值变成3;
5然后第1个位置输出值为3;
6.然后进行第一个位置的++运算,然后a的值变成4;
7.然后第五个位置和第三个位置和第二个位置进行输出;
最后得到
第一个位置为3
第二个位置为4
第三个位置为4
第四个位置为1
第五个位置为4。
以上即为a++ ++a在加法和printf函数中的运算顺序。
谢谢观看