c++:为什么这段代码会输出a而不输出b?
程序里的一个问题研究了好久,后来简化了成了这样,过来问问,为什么输出a而不是输出b
这个是一个初学者最容易犯的错之一
C++的=是赋值 ,不是判断
if (mapk[3][10][1]=1)
是先将mapk[3][10][1]赋为1,且表达式结果就是1,所以会输出a
而if (mapk[3][10][1]=0)又将它赋为0,但因为表达式的值是0,所以不会输出b
C++要判断一个值 ,要用==的
所以,要有正确的结果,你要用
if (mapk[3][10][1]==1) printf("a");
后面的类同
因为你if语句没有用大括号包住,如果if语句不用大括号包住,则根据就近原则,会执行离if最近的那一句语句,所以你这段代码只输出a而输出不是输出b
下一篇:电脑运行卡顿,配置不低
热门标签: