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

问题描述 投票:0回答:3

我不明白为什么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;
}
c
3个回答
3
投票

此呼叫之前

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

变量a已经增加]

a++;

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

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

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

2
投票

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


0
投票
printf("a=%d,b=%d",a,b++);
© www.soinside.com 2019 - 2024. All rights reserved.