返回信息流#include<iostream>
using namespace std;
void display(const double &r);
int main()
{
double d(9.5);
display(d);
}
void display(const double &r)
//常引用做形参,在函数中不能更新r所引用的对象,因此对应的实参不会被破坏。
{ cout<<r<<endl; }
编译正确,输出9.5
这里我就不明白了,d(9.5)是什么意思啊
display这个函数传入的参数明明的&r,而main函数中用的时候却只穿了个d
为什么不是&d呢?
这是一条镜像帖。来源:北邮人论坛 / cpp / #38531同步于 2010/4/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[求助]c++简单问题
salooloo
2010/4/25镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
相当于
double d = 9.5;
但是效率要高
一个是直接初始化
一个是声明之后再赋值
【 在 salooloo (salooloo) 的大作中提到: 】
: #include<iostream>
: using namespace std;
: void display(const double &r);
: ...................
跟double d=9.5是一个意思吧。。。
【 在 salooloo (salooloo) 的大作中提到: 】
: #include<iostream>
: using namespace std;
: void display(const double &r);
: ...................
专业回答。。
【 在 guozi (果子|头像是MM,我不是) 的大作中提到: 】
: 相当于
: double d = 9.5;
: 但是效率要高
: ...................
3ku
还有 display这个函数传入的参数明明的&r,而main函数中用的时候却只传了个d
传&d就报错了,说
invalid initialization of reference of type 'const double&' from expression of type 'double*'
为什么呢?
这里是C++ 是引用~~
&已经不是曾经的那个&了
呵呵
【 在 salooloo (salooloo) 的大作中提到: 】
: 3ku
: 还有 display这个函数传入的参数明明的&r,而main函数中用的时候却只传了个d
: 传&d就报错了,说
: ...................
&r是说传引用吧。。
【 在 salooloo 的大作中提到: 】
:
: 3ku
: 还有 display这个函数传入的参数明明的&r,而main函数中用的时候却只传了个d
: ...................
double d=9.5与double d(9.5)是完全一样的
但是都比double d d=9.5要快
引用其实是用的地址绑定,所以才能够修改实参的值,传递的时候只需变量名就可以了。至于到底是怎么弄得就让大牛来解答吧。
const 引用也可以直接接受一个字面常量,所以display(9.5)也是可以的