以下是引用d2567264697在2020-3-8 14:53:36的发言:
#include<stdio.h>
int main()
{
char i=0;
char j=8;
for(;j>0;j--) i=i++;
printf("%d",i);
return 0;
}
咱先不说char类型到int类型的隐式转换
光回答你的问题,为什么i会等于0
很显
for(;j>0;j--) i=i++; 这一句计算好会直接跳过因为
j已经是0了?0会大于0吗?不会的,所以会直接跳过
至于++
和这题无关,当然科普一下也是不错的
既然for(;j>0;j--) i=i++;这一句已经跳过了
那这串代码实际为
char i=0;printf("%d",i);
所以楼主已经定义初始化了i为0,所以打印出来的i也为0