有这样一个程序段
#include <iostream.h>void main()
{
int i=0; if (i=0)
i++;
else
i--;
cout<<i<<endl;}程序的运行结果是-1(没记错的话)。按常理分析,“正确”的显示应该是1。经过对i的值得替换,发现if和else后边的语句都被执行了,不解这是为什么。请各位不吝赐教。sign up
#include <iostream.h>void main()
{
int i=0; if (i=0)
i++;
else
i--;
cout<<i<<endl;}程序的运行结果是-1(没记错的话)。按常理分析,“正确”的显示应该是1。经过对i的值得替换,发现if和else后边的语句都被执行了,不解这是为什么。请各位不吝赐教。sign up
if (0==i) //这样就不会写错了,你总不能这样明显的错误 if(0=i)都看不见吧!
if(i=0)
这好象不应该啊
楼主你的c要重学
拜我为师吧
你也不应该范这样在的错吧!
再说了:你用if(i=0)你的编译就没有发现有错?不会吧!
编译器认为:(i=0) == NULL == false;
这是一般人刚开始都会犯的错误,以后不会就好。
{
}
.....
这里错了,幸亏我上PASCAL课的时候我从来不听,
“=”是一个敷值的符号,“==”是一个比较的符号,而且两者的等级不一样,“=”的级别较高。
{
}
来的太晚了,不过我想应该是楼主的笔误吧。呵呵