赋值操作符的返回类型是什么?



我知道它会返回左边的内容。因此,在字符赋值的情况下,我们将得到一个字符,而在int赋值的情况下,我们将得到一个int类型。

赋值操作符没有固定的数据类型吗?

引用C11,第6.5.16章,赋值运算符 (强调mine)

[…)一个赋值表达式在赋值后有左操作数的值,但不是一个左值。赋值表达式的类型是左操作数应该具有的类型.

c++中:

内置赋值操作符返回一个引用,或者更准确地说,赋值表达式是一个左值。

对于标准集合中的项也要求返回引用。

除此之外,您还可以为类类型定义赋值操作符,使用任何您想要的返回类型,包括void(否则我认为这是更可取的)。

用C

:
在C语言中,没有用户定义的赋值操作符,赋值表达式是一个右值。也就是说,在C中你不能做在c++中可以做的(a = b) = c。这在我看来是个优势

最新更新