搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 这个引用怎么理解?
标题:
这个引用怎么理解?
只看楼主
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
等 级:
版主
威 望:
507
帖 子:8890
专家分:53117
注 册: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
等 级:
版主
威 望:
507
帖 子:8890
专家分:53117
注 册: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
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-477416-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.183415 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved