左值可以用作右值,但右值不能用作左值。左值用的是对象的身份,即内存地址,而右值用的是对象的内容,即值。
因此,左值不能为常量。
除取地址符返回的指针是右值,其他的运算符返回的基本都是左值。
对于decltype来说,如果是左值,则为引用,如果是右值,则为指针。
对于运算符所操作的对象,并没有定义运算顺序,也并非是从左到右的,如果出现了这种情况,且会由于顺序而对结果造成影响,则称表达式为未定义的。
只有***&& || ?: ,四种运算符指定了求值顺序***。
正负号$>$乘除取余$>$加减
返回的都是右值。
当混合运算时,小整数类型(bool,char,short)会自动转换为大整数类型(int)。
int会转为float/double。(并不知道具体是哪一个)
商一律切除小数部分。
$m\bmod n=m\bmod |n|$
当m时负值时,结果也为负值。
非$>$大小判断$>$等于判断$>$与$>$或
当一个变量非常大时,遍历时使用引用能避免大量拷贝操作。