#include
int main()
{
int i=0;
printf("%d\n",i);
printf("%d\n",i++);
printf("%d\n",i++);
printf("%d\n",++i);
printf("%d\n",i);
return 0;
}
答案
0
0
1
3
3
怎么来的啊
其实这里就一个知识点
i++是先取值后++,那么print(i++)的时候,如果i此时是0,会先打印0,打印完i变成1
++i是先加后取值,那么当执行print(++i)的时候,上一行打印i的值是1,打印完把它变成2,那么先+1再打印,它不是3吗
最后一行没有++了,直接打印,i还是3没有变
第一个直接输出i的值,输出0
第二个i++是输出语句运行后自增1,输出0,i的值变化为1
第三个也是如此,输出1,i变化为2
第四个++i是i先自增1后再输出,i变化为3,输出3
第五个直接输出i的值,输出3