什么是&引用;而不是";==&引用;在c-if语句中是什么意思? #包括 int main(){ int b=10,a; 如果(a=5){ printf(“%d”,b); } }
在上面的程序中,即使我将变量“a”的数据类型从“int”更改为“char”,if语句始终返回true什么是&引用;而不是";==&引用;在c-if语句中是什么意思? #包括 int main(){ int b=10,a; 如果(a=5){ printf(“%d”,b); } },c,if-statement,C,If Statement,在上面的程序中,即使我将变量“a”的数据类型从“int”更改为“char”,if语句始终返回true if语句中的=是什么意思???单个=将值5分配给a。如果赋值值的值为真(即非0、空等),赋值将为真。如果计算结果为true,则函数将分支到If语句块。还有一个副作用是a得到值5。 赋值运算符返回赋值 如果检查值不是零,“if”语句决定为true 因此: “if(a=0)”返回false “如果(a=x),其中x!=0”返回true 因此,您应该像其他朋友所说的那样,在if语句中使用“==”
if语句中的=是什么意思???单个
=
将值5分配给a
。如果赋值值的值为真(即非0、空等),赋值将为真。如果计算结果为true,则函数将分支到If
语句块。还有一个副作用是a
得到值5。- 赋值运算符返回赋值
- 如果检查值不是零,“if”语句决定为true
- “if(a=0)”返回false
- “如果(a=x),其中x!=0”返回true
因此,您应该像其他朋友所说的那样,在if语句中使用“==”运算符。
=
是C中的赋值运算符。根据C99 6.5.16:
赋值运算符将值存储在由
左操作数赋值表达式的值为左
赋值后的操作数,但不是左值。
这意味着表达式a=5
将返回5
,因此将执行if
块中的指令。相反,如果将其替换为a=0
,则赋值表达式将返回0
,而if
中的指令将不会执行 single=表示赋值运算符,这意味着您正在更改A的值,并在if语句中使用该值
#include <stdio.h>
int main(){
int b = 10,a;
if (a = 5){
printf("%d",b);
}
}
与以下各项相同:
if(a = 5) {
// some code
}
==表示逻辑等价的操作,如果两个值相同,则返回1;如果两个值不相同,则返回0。请注意,在C中,布尔表达式中允许使用赋值运算符。因此,=as赋值必须与=for Comparison的符号不同
因为在诸如BASIC之类的语言中,程序员的意思是赋值还是比较不会混淆,BASIC使用相同的符号表示两种含义:
C:
基本:
if ((a=5)==5) ... // a is set to 5 and then compared to 5
和往常一样,赋值。这是实际代码还是测试的一部分?因为在任何其他情况下,这意味着有一个输入错误。你知道谷歌的意思吗?如果(a=0)
不会分支,那么赋值不会总是计算为true。但是我将数据类型更改为“char”是什么呢??在这种情况下,赋值条件也是真的吗?因为在这种情况下,我将整数赋值给字符类型variablea=65产生“a”并返回真;a=0产生'\0'并返回false@user3542577字体那里有什么类型并不重要。若赋值结果为非零,它将分支。@dreamlax:我更改了“always aveluates true”以处理您的有效注释a=5
计算结果为真,但a=0
确实计算结果为假。
if ((a=5)==5) ... // a is set to 5 and then compared to 5
a = 5 ' assignment
If (a = 5) Then ' comparison