摘要载入中… 请稍等…
内容载入中… 请稍等…
| ◎→ | 本类最新 |
|
c/c++中利用数组名和指针进行排序 c/c++数组排序及计算平均值思考 c++入门教程的补充说明(3) c++入门教程的补充说明(2) c++入门教程的补充说明(1) 终止函数与return()函数的差别 命令行参数的原理 |
|
| ◎→相关资源 | |
| C语言入门视频教程 C#编程WinForm入门视频 Asp.net入门视频教程下载 VC++编程视频教程下载 VB窗体文章 HTML入门教程 C++入门教程 | |
| ◎→ | 热门资源 |
| 类构造函数与析构函数 2 类构造函数与析构函数 1 面向对象的编程入门篇 6我们最后 面向对象的编程入门篇 5 面向对象的编程入门篇 面向对象的编程入门篇 3 面向对象的编程入门篇 2 |
|
最后的一种情况是函数返回引用,并且发值赋给一个引用的情况!
//程序作者:管宁
//站点:www.cndev-lab.com
//所有稿件均有版权,如要转载,请务必著名出处和作者
#include <iostream>
#include <string>
using namespace std;
float c;
float& test(float,float);
void main(int argc,char* argv[])
{
float &pn=test(3.0f,1.2f);
cout<<pn;
cin.get();
}
float &test(float a,float b)
{
c=a*b;
return c;
}
这种情况同样也不产生临时变量,可读和性能都很好,但有一点容易弄错,就是当c是某个函数的局部变量或者是在堆内存中临时开辟后来又被fee掉了以后的区域,这种情况和返回的指针是局部指针的后果一样严重,会导致引用指向了一个不明确的地址,这种情况在内存中情况见下图!
由于这种情况存在作用域的问题,故我们推荐采用第三种方式处理!
接下来我们说一个利用引用作为左值参与计算的例子,这一点一非常重要,对于理解返回引用的函数是非常有帮助的!
//程序作者:管宁
//站点:www.cndev-lab.com
//所有稿件均有版权,如要转载,请务必著名出处和作者
#include <iostream>
#include <string>
using namespace std;
float c;
float& test(float,float);
void main(int argc,char* argv[])
{
float &pn=test(3.0f,1.2f);
cout<<pn<<endl;
test(3.0f,1.2f)=12.1;//把函数作左值进行计算!
cout<<pn;
cin.get();
}
float &test(float a,float b)
{
c=a*b;
return c;
}
| 芯友网版权所有 1999-2006 | 著作权与商标声明 | 法律声明 | 服务条款 | 隐私声明 | 联系我们 |