什么是赋值运算符的返回类型?

时间:2016-10-19 15:16:46

标签: c++ c return-type assignment-operator

我知道它会返回左侧的任何内容。所以在字符赋值的情况下,我们会得到一个字符,如果是int赋值,我们会得到一个int类型。

是否存在赋值运算符的修复数据类型?

2 个答案:

答案 0 :(得分:2)

引用C11,章节§6.5.16,分配运算符强调我的

  

[...] An   赋值表达式在赋值后具有左操作数的,但不是   一个左值。赋值表达式的类型是左操作数将具有的类型   左值转换后

答案 1 :(得分:2)

在C ++中

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

标准集合中的项目也需要返回引用。

除此之外,你可以为一个类类型定义一个赋值运算符,它具有你想要的任何返回类型,包括void(否则恕我直言)。

在C
在C中,没有用户定义的赋值运算符,赋值表达式是rvalue。即,在C语言中,您无法在C ++中执行(a = b) = c。哪个恕我直言是一个优势。