社区
C++ 语言
帖子详情
C++ 自增 左值 右值
luobochaoren
2010-03-31 10:34:48
在C++中,为什么前自增操作生成左值,后自增操作生成右值?为什么有这样的区别?
...全文
757
4
打赏
收藏
C++ 自增 左值 右值
在C++中,为什么前自增操作生成左值,后自增操作生成右值?为什么有这样的区别?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
GoForSky
2010-03-31
打赏
举报
回复
为什么前自增操作生成左值,后自增操作生成右值?
前自增 的实现是:返回的是自己的引用,就是对象自己,可以被赋值
后自增 的实现是:返回一个自己类型的临时变量,这个临时变量一般来说是右值,不能修改
关于函数返回的临时对象可否修改的问题:
C++标准中定义了一个概念数值类型(scalar type),可以囊括整数、浮点数、枚举、指针类型。
1: 如果是数值类型,就不能修改
2: 如果是用户自定义类型,可以被修改,称为可修改的右值。
GrayMole2010
2010-03-31
打赏
举报
回复
前自增操作返回的对象本身,后自增操作返回的是一个临时变量。
前自增操作先对对象本身操作,然后返回对象本身,一般返回引用;
后自增操作一般用一个临时变量保存对象,然后对对象操作,返回临时变量,
一般返回对象(不是引用,不能返回临时变量的引用)。
耍宝王
2010-03-31
打赏
举报
回复
前自增返回的就是
自增后
的“自己”,而后自增返回的是
自增前
“自己的副本(临时变量)”
L2740611032
2010-03-31
打赏
举报
回复
前自增表示在用这个变量前,这个变量就加“+1”了,后自增就表示变量在用后才“+1”.
例如
int i=1;
++i ;//此时i 就是等于2了;如果此时是i++时,i就等于‘1‘,当运行到下条语句是i就是’2‘了。
C和
C++
中
自增
自减(++ --) 操作符的
左值
右值
属性不同
看《C和指针》时,发现P81的++i,i++的结果都是
右值
类型。 恍惚记得前缀
自增
自减是
左值
类型。难道C和
C++
不一样? 验证了一下,确实不一样。 在C中++i做
左值
编译失败,在
C++
中则没有问题。 i++在C/
C++
中做
左值
均编译失败。 综上,++i 和 i++在C中都是
右值
类型,在
C++
中,++i是
左值
,i++是
右值
。
C++
前置
自增
运算符和后置
自增
运算符返回值的区别(++x和x++返回值的区别)(前置
自增
运算符++x返回的是变量x
自增
后的
左值
,后置
自增
运算符x++返回的是变量x
自增
前的
右值
)
前置
自增
运算符返回的是
自增
后的变量,可以被赋值;而后置
自增
运算符返回的是
自增
前的变量,不能被赋值。
自增
后的内存地址,可以被赋值。是先
自增
再使用,而后置
自增
运算符。在
C++
中,前置
自增
运算符。
自增
前的值,不能被赋值。这是因为前置
自增
运算符。
简单聊聊C/
C++
中的
左值
和
右值
为什么标题要写成简单聊聊,而不是写成什么“
C++
中
左值
与
右值
详解”或者现在很流行的“惊了!看了这一篇
左值
与
右值
讲解,他吊打了面试官”,其实带有详解这个词是需要勇气的,最起码要融会贯通之后才敢这么说吧,本来是学习
右值
引用的,结果涉及到了
左值
和
右值
,然后去了解他们历史发现也是有些混乱,操作中又经常涉及到运算符优先级,真是越学越乱了...
C++
右值
引用
右值
引用就是必须绑定到
右值
的引用,通过&&而不是&来获得
右值
引用,
右值
引用有一个重要的性质,只能绑定到一个将要销毁的对象。 首先明确一下,
左值
和
右值
是表达式的属性,所有的表达式要么是
左值
,要么是
右值
,但是
左值
可以当作
右值
使用。
左值
持久,
右值
短暂,即
左值
有持久的状态,而
右值
要么是字面值常量要么是表达式求值过程中创建的临时量。
左值
是有名字的对象,可以取地址(这里字符串字面值是个例外,虽然它是
左值
,但是好像不能取地址),
右值
是没有名字的对象,也不能取地址,...
关于
左值
,
右值
,前
自增
操作符,后
自增
操作符
最近看了下
c++
primer,不知道理解对不对~~
左值
是可以出现在赋值语句的左边或右边,可以认为它不光有值,还有一个存储地址
右值
是只能出现在赋值语句的右边,可以认为它只有一个值的大小,没有存储地址,只关心它的值 对应前
自增
和后
自增
操作符来讲 前
自增
操作符具有的
左值
性质,++i,它不仅返回i
自增
后的值,还返回i的存储单元地址 而后
自增
操作符具有的是
右值
性质,i++,它返回的只是i的原
C++ 语言
65,212
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章