是不是错误的啊??应该是if(a==5)呢??
这个代码没有上下文不好说的太绝对,不过如果这是你看到的能正确运行结果的代码,那么应该是这样理解。
先赋值,再执行一个if语句,不过,这样的写法真是不好,如果是我,我就说它是错误的。
你可以运行一下下面的代码就想清楚了。#include<stdio.h>
int main()
{
int a = 1 ;
int b = 2 ;
if(a=2)
{
b==a?printf("a=2"):printf("a=1");
}
return 0 ;
}
~
~
~
~
~
~
~
~
~
~
~
~
:set nonu 1,1 全部
先赋值,再执行一个if语句,不过,这样的写法真是不好,如果是我,我就说它是错误的。
你可以运行一下下面的代码就想清楚了。#include<stdio.h>
int main()
{
int a = 1 ;
int b = 2 ;
if(a=2)
{
b==a?printf("a=2"):printf("a=1");
}
return 0 ;
}
~
~
~
~
~
~
~
~
~
~
~
~
:set nonu 1,1 全部
温馨提示:答案为网友推荐,仅供参考
第1个回答 2010-09-14
合法
if(a=5)
等价于
a=5;
if(a)
c语言语法很灵活,虽然这样做没错,但因为不易读懂,不提倡。本回答被网友采纳
if(a=5)
等价于
a=5;
if(a)
c语言语法很灵活,虽然这样做没错,但因为不易读懂,不提倡。本回答被网友采纳
第2个回答 2010-09-14
不会出错,其结果永远是1,if判断总是正确,同时也把a赋值为5
第3个回答 2020-07-29
你说的是if(a==5)吧?判断a是否和5相等