猿问

请大佬指点迷津,谢谢!

#include <stdio.h>
int main()
{
    int x = 0;
    printf("x=%d\n",x++);
    printf("x=%d\n",++x);
    return 0;
}

为什么这里是x=0

                    x=2

————————————————————

#include <stdio.h>
int main()
{
 int x = 0;
 printf("x=%d\nx=%d", x++, ++x);
 return 0;
}

这里却成了x=1

                 x=2 


DeathHunk
浏览 457回答 1
1回答

按照自己的节奏前行

很简单,规则问题x++表示先赋值,后执行加法操作,再赋值,这个时候,第一个输出的x是0,然后打印x=0在执行加法赋值操作,此时x=1了++x表示先执行加法操作,在赋值,所以x=2了---------------后面那个,初始x=0, x++,此时x=1,但是第一个参数此时还是为0,++x,此时x=2,第一个参数修改为1,通常大家不会写这么难以理解的代码,容易出错x++的时候,最开始x还是为0,但是后面执行++x,所以第一个就等于1了
随时随地看视频慕课网APP
我要回答