在c语言中3=(a=b)为什么是错误的?
2个回答
展开全部
在C语言中,3=(a=b)是错误的表达式。这是因为在C语言中,赋值操作符`=`的返回值是被赋的那个变量的值,并不是整个赋值语句的值。
因此,在这个表达式中,首先会执行变量a等于b的赋值操作,然后将a的值作为赋值表达式的结果,尝试将这个结果赋值给数字3,实际上这是非法的,因为数字3是一个常量,不能从程序中修改它的值。
正确的写法应该是将3放在赋值号左边,例如:
```
a = b;
3 = a; // 错误写法,应该改成 a == b
```
这样可以将变量b的值赋给变量a,然后将变量a的值赋给数字3。如果要比较a和b是否相等,应该使用相等运算符`==`而不是赋值操作符`=`。
因此,在这个表达式中,首先会执行变量a等于b的赋值操作,然后将a的值作为赋值表达式的结果,尝试将这个结果赋值给数字3,实际上这是非法的,因为数字3是一个常量,不能从程序中修改它的值。
正确的写法应该是将3放在赋值号左边,例如:
```
a = b;
3 = a; // 错误写法,应该改成 a == b
```
这样可以将变量b的值赋给变量a,然后将变量a的值赋给数字3。如果要比较a和b是否相等,应该使用相等运算符`==`而不是赋值操作符`=`。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询