我知道它会返回左边的内容。因此,在字符赋值的情况下,我们将得到一个字符,而在int赋值的情况下,我们将得到一个int类型。
赋值操作符没有固定的数据类型吗?
引用C11
,第6.5.16章,赋值运算符 (强调mine)
[…)一个赋值表达式在赋值后有左操作数的值,但不是一个左值。赋值表达式的类型是左操作数应该具有的类型.
c++中:
内置赋值操作符返回一个引用,或者更准确地说,赋值表达式是一个左值。
对于标准集合中的项也要求返回引用。
除此之外,您还可以为类类型定义赋值操作符,使用任何您想要的返回类型,包括void
(否则我认为这是更可取的)。
:
在C语言中,没有用户定义的赋值操作符,赋值表达式是一个右值。也就是说,在C中你不能做在c++中可以做的(a = b) = c
。这在我看来是个优势