小心逗号表达式

来源:互联网 发布:mac程序卸载 编辑:程序博客网 时间:2024/06/05 08:48
int a(int m){    if(m<0){        return 0;    }else{        return m;    }}      int b(int m){    if(m,0){        return 0;    }else{        return m;    }} 

写个小程序,发现老是有点隐隐约约的不对劲,经过排查发现以上类似错误,因为逗号和小于号在一个键上,非常容易按错。

函数a和b在输入非负数的时候表现一样,当输入负数的时候,a函数返回这个负数,b函数返回0

原因是逗号表达式,if(m,0)的意思是int tmp=m,0; 表达式1就是m,表达式二是0,将表达式结果赋值给等号前,也就是tmp=0;

也就是说if(m,0) 就是 if(0)。 

原创粉丝点击