可以赋值。语法上 if 的括号里需要的是一个 bool 型的值,换句话说,括号里只要能提供一个能转化为 ...
所以,你的代码最终输出是1,1。在C语言中,if的判断条件是个赋值表达式,在语法上是支持的。这是一...
在一个表达式中可以包含另一个表达式,赋值表达式是表达式,那么它就可以出现在其他表达式中。例如:if((a=b)>0) max=a;在if语句中的a=b不是赋值语句,而是赋值表达式。值得注意的是赋值表达式的末尾没有分号,而赋值语句的末尾必须有分号。在一个表达式中可以包含一个或多个赋值表达式,但绝不能包含赋值语句。 赋值...
这个语句没有语法错误(可能会有警告),是可以执行的。但是这个语句永远没有机会执行else部分。a=2赋值表达式的计算结果就是2,当这个表达式出现在if语句逻辑表达式位置上的时候,它的计算结果是被当作逻辑值处理的,在C语言中用整型数表示逻辑量,非零表示“真”,所以这是一个永真式;这个if的逻辑条件...
当if语句中的条件为赋值语句时,实际上是将赋值后的结果与0进行比较。比如下面的代码:include <stdio.h>int main(){int a;if (a = 0) printf("hello world\n");return 0;}它等价于:include <stdio.h>int main(){int a = 0;if (a==0) printf("hello world\n");return 0;}这个...
完全可以在if语句中赋值的。include<stdio.h>int main(){double p,w,s,f,d;scanf("%lf %lf %lf",&p,&w,&s);if(s>=0&&s<250)d=0;else if(s>=250&&s<500)d=0.02;else if(s>=500&&s<1000)d=0.05;else if(s>=1000&&s<2000)d=0.08;else if(s>=2000&&s<3000)d=0...
C语言使用0代表假,非0代表真 if(a=0);就相当于 a=0;if(a);就相当于 if(0);括号中的条件是假
所以if(x=1)无论x原来为多少if语句都会成立,并且会将x的值改写为1,和if(x==1)有着非常大的区别(那么,if(x=0)呢?),正是x=1这个表达式是有值的,C语言才允许if(x=1)这种写法,一些语言里x=1这个式子是没有值的,只是将x赋值为1,这样写就会报错,如Java。C语言代码里出现if(x=1)一般情况下是你写错...
if(a=12)注意这里是a=12,而不是a==12,所以if里面是一个赋值,赋值表达式的返回值就是所赋的值,所以if为真,并且a=12这样后,a被赋值为12 再执行a=a+1;b=b+1;就得到13;1了
用if语句可以构成分支结构。它根据给定的条件进行判断,以决定执行某个分支程序段。C语言的if语句有三种基本形式。 1、基本形式:if if(表达式) 语句 1. 其语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。其过程可表示为下图。 下面是一个基本形式的例子: ...