C语言的一个运算问题

来源:百度知道 编辑:UC知道 时间:2024/05/05 16:43:32
#include<stdio.h>
void main()
{
int i=10,j=0;
if (j=0)
i++;
else
i--;
printf("%d\n",i);
}
结果是9 不是10 为什么? 说清楚点谢谢

if(j=0)//这里应该用(j==0)吧

if (j=0)//永假,这个i++不执行
i++;

所以执行
i--

i=9

结果应该出11吧?
因为 if(j=0) 不是说如果J=0 而是说 如果J可以赋值为0(把操作是否成功的消息给强类型了下)
相当于你在if(true) 所以肯定是i++的 所以肯定出11

因为(j=0) 为假
j==0 才为真

j=0这个式子的值是j的值,也就是0.
这样if后条件为假,即执行else下语句,即i--;
i--相当于(t=i,i-=1,t)
所以最后i=9

一楼说的是正确的!!

应该输出结果为11吧
你这是赋值
同意一楼的