[置顶] C/C++左值性精髓(三)左值转换

 C/C++左值性精髓

(三)左值转换

 

        左值转换又称为从左值到右值的转换。左值转换的发生一般基于两个原因:

第一:某些运算符仅要求右值操作数,例如+、-双目运算符,如果给予它们一个左值操作数,这时候就需要把左值转换为右值;

第二:某些指示符,例如数组和函数,由于不属于标量类型,即所代表的实体本身不能被视为数值,这些指示符欲参与表达式计算,就必须将其数值化,数值化的结果不同于一般对象的值,而是实体地址。

        因此,基于上述原因,左值转换分为三类,分别是从左值到右值的转换、从数组到指针的转换和从函数到指针的转换。C++基于函数重载解析的需要,将上述三类左值转换概念化了,但C仅提出了条款,没有提出概念。

你可能感兴趣的:(c)