如下题:
#include <stdio.h>
int main()
{
int a, b, c;
a = 5;
c = ++a;
b = ++c, c++, ++a, a++;
b += a++ + c;
printf("a = %d b = %d c = %d\n:", a, b, c);
return 0;
}
A.a = 8 b = 23 c = 8
B.a = 9 b= 23 c = 8
C.a = 9 b = 25 c = 8
D.a = 9 b = 24 c = 8
分析如下:
#include <stdio.h>
int main()
{
int a, b, c;
a = 5;
c = ++a;
// ++a:加给a+1,结果为6,用加完之后的结果给c赋值,因此:a = 6 c = 6
b = ++c, c++, ++a, a++;
// ++c:c为7 c++:c值不变 ++a:a的值为7,a++:a值不变,b取a的值:7
// 表达式结束时,c++和a++会给a和c分别加1,此时c:8,a:8,b:7
b += a++ + c;
// a先和c加,结果为16,在加上b的值7,比的结果为23,最后给a加1,a的值为9
printf("a = %d b = %d c = %d\n:", a, b, c);
// 所以: a:9, b:23, c:8
return 0;
}
【C语言 】——前置++,后置++,逗号表达式综合使用
猜你喜欢
转载自blog.csdn.net/cfk17829572643/article/details/111941765
今日推荐
周排行