|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 这个引用怎么理解?
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
2307
人关注过本帖
标题:
这个引用怎么理解?
只看楼主
加入收藏
sharplong
等 级:
论坛游侠
帖 子:122
专家分:121
注 册:2017-3-27
结帖率:
85.71%
楼主
收藏
已结贴
√
问题点数:20 回复次数:9
这个引用怎么理解?
图片附件: 游客没有浏览图片的权限,请
登录
或
注册
int &r4 = r1 * 2;为什么不正确呢?
搜索更多相关主题的帖子:
引用
int
2017-05-27 12:53
举报帖子
使用道具
赠送鲜花
sharplong
等 级:
论坛游侠
帖 子:122
专家分:121
注 册:2017-3-27
第
2
楼
收藏
得分:0
编辑器提示,非常量引用初始化值必须是左值,r1不是左值吗?
#include "stdio.h"
void main()
{
int i =42;
int &r1 = i;
int &r4 = r1*2;
}
跟据科学研究呢,拥有一个良好的头像呢,有助于提高帖子关注度,和被友好对待的可能性:)准确来说呢,其实,我是一个演员....和兼职汽车维修员
2017-05-27 13:16
举报帖子
使用道具
赠送鲜花
九转星河
来 自:长长久久
等 级:
贵宾
威 望:
52
帖 子:5023
专家分:14003
注 册:2016-10-22
第
3
楼
收藏
得分:7
似乎引用是C++的概念~这个我也说不上什么~~
[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-27 13:35
举报帖子
使用道具
赠送鲜花
rjsp
等 级:
版主
威 望:
528
帖 子:9031
专家分:54061
注 册:2011-1-18
第
4
楼
收藏
得分:7
编辑器提示,非常量引用初始化值必须是左值,r1不是左值吗?
int &r4 = r1*2;
r4 引用的是 r1*2,与r1是不是左值有个屁关系呀,只与r1*2是不是左值有关
如果 int& r4 = r1*2; 是合法的。
那么 r4 = 0 也就是合法的,即 r1*2 = 0 是合法的。
2017-05-27 13:49
举报帖子
使用道具
赠送鲜花
sharplong
等 级:
论坛游侠
帖 子:122
专家分:121
注 册:2017-3-27
第
5
楼
收藏
得分:0
回复 4楼 rjsp
r1*2不是左值
const int &4 = r1*2;就没问题。
跟据科学研究呢,拥有一个良好的头像呢,有助于提高帖子关注度,和被友好对待的可能性:)准确来说呢,其实,我是一个演员....和兼职汽车维修员
2017-05-27 14:25
举报帖子
使用道具
赠送鲜花
rjsp
等 级:
版主
威 望:
528
帖 子:9031
专家分:54061
注 册:2011-1-18
第
6
楼
收藏
得分:0
以下是引用
sharplong
在2017-5-27 14:25:00的发言:
r1*2不是左值
const int &4 = r1*2;就没问题。
你这是 陈述语句,还是 疑问语句?
如果是 陈述语句,那我回答:是的,正如你所言,const int & 可以引用一个 右值。
如果是 疑问语句,那我回答:当然没问题呀,因为是const,所以不可写出 r4 = 0 这种语句,也就是不可能有 r1*2 = 0 这种非法情况出现。
2017-05-27 14:42
举报帖子
使用道具
赠送鲜花
sharplong
等 级:
论坛游侠
帖 子:122
专家分:121
注 册:2017-3-27
第
7
楼
收藏
得分:0
回复 6楼 rjsp
所以不可写出 r4 = 0 这种语句,也就是不可能有 r1*2 = 0 这种非法情况出现。
-----------------------------------------------------
感谢版主的耐心解答,您的答案又更一步启发了我。
您的意思是:
如果 int &r4 = r1*2; 成立 那么
r4 = 0;
r1 *2 = 0;成立,
但是很显然以上两条语句为非法,所以 int &r4 = r1*2非法
然而 加上const 就不会出现上面两条语句的可能性。所以const int &r4 = r1*2 是正确的。
[此贴子已经被作者于2017-5-27 15:19编辑过]
跟据科学研究呢,拥有一个良好的头像呢,有助于提高帖子关注度,和被友好对待的可能性:)准确来说呢,其实,我是一个演员....和兼职汽车维修员
2017-05-27 15:12
举报帖子
使用道具
赠送鲜花
sharplong
等 级:
论坛游侠
帖 子:122
专家分:121
注 册:2017-3-27
第
8
楼
收藏
得分:0
回复 3楼 九转星河
感谢大佬关注
跟据科学研究呢,拥有一个良好的头像呢,有助于提高帖子关注度,和被友好对待的可能性:)准确来说呢,其实,我是一个演员....和兼职汽车维修员
2017-05-27 15:20
举报帖子
使用道具
赠送鲜花
yangfrancis
等 级:
贵宾
威 望:
141
帖 子:1510
专家分:7661
注 册:2014-5-19
第
9
楼
收藏
得分:7
回复 8楼 sharplong
引用就是建立另一个变量的别名。右值当然只能指向一个变量。指向常量或表达式都会被认为非法
2017-05-27 15:43
举报帖子
使用道具
赠送鲜花
sharplong
等 级:
论坛游侠
帖 子:122
专家分:121
注 册:2017-3-27
第
10
楼
收藏
得分:0
回复 9楼 yangfrancis
多谢指导。
跟据科学研究呢,拥有一个良好的头像呢,有助于提高帖子关注度,和被友好对待的可能性:)准确来说呢,其实,我是一个演员....和兼职汽车维修员
2017-05-27 15:55
举报帖子
使用道具
赠送鲜花
10
1/1页
1
快速回复:
这个引用怎么理解?
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.031092 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved