表达式

本文深入探讨了C++中的左值与右值概念,解释了它们的区别以及何时可以相互替换。左值用于标识对象的位置,而右值则关注其值。赋值运算符、取地址符、解引用、下标运算符等运算通常涉及左值。同时,文章介绍了运算符的求值顺序,如逻辑与(&&)、逻辑或(||)以及三目运算符。此外,还提到了显式类型转换在编程中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.左值与右值

当一个对象被用作右值的时候,用的是对象的值(内容);
当一个对象被用作左值的时候,用的是对象的身份(在内存中的位置)。

在需要右值的地方可以用左值来代替,但不能把右值当成左值(位置)使用。当一个左值被当成右值使用时,实际使用的是它的内容(值)。

用到左值的常见运算符:
1.赋值运算符
2.取地址符作用于左值运算对象,返回一个指向该运算的指针,指针是右值。
3.内置解引用符、下标运算符、迭代器解引用运算符、string和vector的下标运算符
4.内置类型和迭代器的递增递减运算符作用于左值对象
5.算数表达值为右值

2.求值顺序

四种运算符规定了求值顺序:

  1. && 先求左侧运算对象值,当左侧对象值为真时,才继续求右侧对象值。
  2. **||**先左后右,左为假时,才执行右
  3. ?:
bool b = true;
bool c = -b;//c也为真,非0;

后置递增运算符优先度高于解引用运算符

cout << *pbeg++ << endl;

输出当前值并将pbeg向前移动一个元素。

3.显示转换

命名强制转换
1.static_cast

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值