我知道它会返回左侧的任何内容。所以在字符赋值的情况下,我们会得到一个字符,如果是int赋值,我们会得到一个int类型。
是否存在赋值运算符的修复数据类型?
答案 0 :(得分:2)
引用C11
,章节§6.5.16,分配运算符(强调我的)
[...] An 赋值表达式在赋值后具有左操作数的值,但不是 一个左值。赋值表达式的类型是左操作数将具有的类型 左值转换后。
答案 1 :(得分:2)
在C ++中:
内置赋值运算符返回一个引用,或者更准确地说,赋值表达式是一个左值。
标准集合中的项目也需要返回引用。
除此之外,你可以为一个类类型定义一个赋值运算符,它具有你想要的任何返回类型,包括void
(否则恕我直言)。
在C :
在C中,没有用户定义的赋值运算符,赋值表达式是rvalue。即,在C语言中,您无法在C ++中执行(a = b) = c
。哪个恕我直言是一个优势。