有定义:int a=10,b=5,为什么b+1=a不合法
时间: 2024-02-09 15:11:53 浏览: 54
在 C 语言中,使用赋值运算符 "=" 将一个值赋给一个变量。在这个过程中,赋值运算符将右侧的值赋给左侧的变量。因此,表达式 b + 1 = a 是不合法的,因为它将右侧的表达式 b + 1 的值赋给左侧的表达式 a,这是无法实现的。
正确的语法应该是将 a 的值赋给 b + 1,即:
```
b + 1 = a;
```
但这个语句也是不合法的,因为 b + 1 是一个表达式,它不是一个可以被赋值的变量。
相关问题
有定义:int a=10,b=5,以下不合法的c语言程序
以下是一些不合法的 C 语言程序:
1. 缺少分号:
```
int a = 10
int b = 5
```
2. 缺少变量类型:
```
a = 10;
b = 5;
```
3. 变量名不合法(包含非法字符):
```
int a# = 10;
int b$ = 5;
```
4. 变量名重复:
```
int a = 10;
int a = 5;
```
5. 变量名与关键字重复:
```
int int = 10;
int float = 5;
```
语句a=b=c=5;合法,语句int a=b=c=5;不合法,为什么
语句 a=b=c=5; 是合法的,它将数值 5 赋值给了变量 a、b、c。
而语句 int a=b=c=5; 不合法,因为在 C++ 中,赋值运算符的优先级低于类型转换运算符,所以这条语句实际上被解释为 int a = (b = (c = 5));,其中 b 和 c 被隐式地声明为 int 类型,但是 b 和 c 并没有被定义,因此编译器会报错。如果要声明并定义变量 a、b、c,可以使用下面的代码:
```
int a, b, c;
a = b = c = 5;
```
这样就能够正确地将数值 5 赋值给变量 a、b、c 了。