我不明白为什么在此程序中a等于1,b等于0

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我不明白为什么在此程序中a等于1,b等于0相关的知识,希望对你有一定的参考价值。

我不明白为什么a等于1,b等于0。我认为它们应该相同。预先感谢。

#include "stdio.h"

int main()
{
    int a=0;
    int b=0;
    a++;
    printf("a=%d,b=%d",a,b++);
    return 0;
}
答案

此呼叫之前

printf("a=%d,b=%d",a,b++);

变量a已经增加]

a++;

然而,在指向printf的调用中,后递增表达式b++的值是变量b在其递增之前的值。因此输出1和0。

如果要获得输出1和1,则将预增量表达式与变量b一起使用,如

printf("a=%d,b=%d",a,++b);
另一答案

b++操作在进行增量操作之前将b发送到printf。在调用a之前,printf递增

另一答案
printf("a=%d,b=%d",a,b++);

以上是关于我不明白为什么在此程序中a等于1,b等于0的主要内容,如果未能解决你的问题,请参考以下文章

c=b+3/2*a 输出结果是

如何计算密度直方图中的高度(它们的总和不等于 1)?

数字身份等于公钥+私钥?

除非它等于0,否则声明一个变量不起作用[重复]

这段代码有啥作用? a = (a == b) ?丙:乙; [复制]

关于C语言float