请问c语言中“if(a=b)a++;”这个句子会不会报错

如题所述

第1个回答  2014-02-14
因为c所允许的隐式转换允许a=b(把b的值赋给a)这个表达式的值被转换成if需要的不尔值,非0转为true,0转为false,所以符合语法要求,但不符合设计逻辑,除非这个句子的逻辑是作者本人的真实意图。
第2个回答  2014-02-14
不会报错,但是达不到想要的效果
第3个回答  2014-02-14
不会,这个是逻辑错误
第4个回答  2014-02-14
不会报错

请问c语言中“if(a=b)a++;”这个句子会不会报错
因为c所允许的隐式转换允许a=b(把b的值赋给a)这个表达式的值被转换成if需要的不尔值,非0转为true,0转为false,所以符合语法要求,但不符合设计逻辑,除非这个句子的逻辑是作者本人的真实意图。

if(a<b){a++;b++}语句合法吗
分号在C语言中的作用就像是中文里面的句号,一句话结束以后就需要加上,而在if()里面的判断语句并不需要,因为这句话并没有结束,不需要在括号里加分号。

C语言中if(a++)是什么意思
if(a++!=0)等同于 if(a!=0)所以a非零就执行if里的内容

c语言中 if(!a)b++是什么意思?
if (a) b++;上面的语句是将a的值与0进行比较,如果a不等于0,则条件为真,则执行b++,也就是说当a的值不等于0的时候才会执行b++。再看 if (!a) b++在c++中!是逻辑否运算符,与上面的条件判断正好相反,即如果a的值是0,则!a=1,则执行b++,也就是说当a的值等于0的时候才会执行b...

C语言中if()为什么不要加封号
if()加上表达式和分号一起才能组成一条if语句,这是语言的语法规则。是规定的。如“if(a>b) b=a;”希望能帮助到你。

简单c语言纠结问题 If(a==1)a=b;else a++
直到遇到break或者运行完毕。所以不是按CASE0,1,2,3依次执行的,0,1,2,3只是起一个定位的作用。然后执行顺序是冲上往下依次执行和case中的值没关系,直到遇到break。如果为真,值就为true,在c++中有个宏#define true 1 如果为假,值就为false,在c++中有个宏#define false 0 ...

C语言中在if(a++&&b++)什么意思?
否则,只要为非0的数,即条件为真,会执行if后面的语句。而括号里的,++运算优先级高于&&,即相当于(a++)&&(b++),其实在这里因为++在后面,也就相当于if(a&&b),如果a,b的值都是非0的,条件成立,如果有1个或2个为0,则为0,条件为假。&&为与运算,只有两侧都为真才为真。

在C语言中(a+b)++这么表达合法吗?
不合法的,望采纳!因为++只能给单一变量数值+1,不能用于多变量的复合表达式赋值,你写成(a++) + (b++)都没有问题。对于(a+b)++,编译器在把a+b的和做完以后,准备让电脑把++给谁加呢?

C语言 a++=b++是什么意思
这样会导致语法错误的,因为你的左边a++是一个表达式,对于等式来说,左边得是一个变量

C语言中这样的if语句是不是合法的?
合法但不合理!记得采纳啊

相似回答
大家正在搜