C语言渡劫!if语句有返回值?一般的表达式有返回值没?
今天一哥们问我if(x=y)&&(x!=0)x+=y;是对的吗?不是if((x=y)&&(x!=0))x+=y哦
是利用if(x=y)的返回值,不是x=y的。
我乱了,我C语言高手的形象完全被破坏了。
所以来问一下 if语句有返回值吗? C语言一般的表达式都有返回值没?
我知道x=y的返回值是y的值。对不?
[解决办法]
if(x=y)&&(x!=0)x+=y;
VC6.0下编译不通过
[解决办法]
嗯很负责任的告诉你
if(x=y)&&(x!=0)x+=y;
[解决办法]
编译都通不过,说明这样的不正确,也就说明if没有返回值啊。if只是个选择判断流程语句
#include <stdio.h>#include <string.h>int main(){ printf("%d\n", if (5 = 3)); return 0;}
[解决办法]
if是控制留语句其本身没有返回值的,while、switch、goto也类似。if的的工作过程是if(expression)....根据expression的计算结果决定转向。expression是指有返回值的任何表达式,逻辑判断表达式,变量表达式,函数返回表达式,算式等等,都可以作为expression内容,关键的是expression要有返回值。但并不是任何expression 都有返回值。
[解决办法]
写这样的代码,要让别人改的话,会被骂死。。。。。
[解决办法]