语句a=b=c=5;合法,语句int a=b=c=5;不合法,为什么
时间: 2023-10-04 15:10:48 浏览: 333
语句 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 了。
相关问题
a=58,b=58不是合法的赋值语句吗
在C语言中,a=58, b=58是合法的赋值语句,因为C语言中可以使用一个表达式作为赋值语句的右值。在这个表达式中,58是一个常量,可以作为一个值来赋给a和b。例如:
```c
int a, b;
a = 58;
b = 58;
```
在上述代码中,首先定义了两个变量a和b,然后将常量58赋值给a和b。这是一种常见的赋值语句,可以在程序中使用。
需要注意的是,赋值语句的左值必须是一个可修改的内存位置,例如变量、数组元素或者指针等,而右值则可以是一个常量、变量、表达式或者函数调用等。在C语言中,使用相应的赋值运算符来实现赋值操作,如=、+=、-=、*=、/=等等。
有定义:int a=10,b=5,为什么b+1=a不合法
在 C 语言中,使用赋值运算符 "=" 将一个值赋给一个变量。在这个过程中,赋值运算符将右侧的值赋给左侧的变量。因此,表达式 b + 1 = a 是不合法的,因为它将右侧的表达式 b + 1 的值赋给左侧的表达式 a,这是无法实现的。
正确的语法应该是将 a 的值赋给 b + 1,即:
```
b + 1 = a;
```
但这个语句也是不合法的,因为 b + 1 是一个表达式,它不是一个可以被赋值的变量。