C++中关于函数的引用
来源:互联网 发布:金融it 编辑:程序博客网 时间:2024/06/05 02:52
这一块知识最常见的疑问就是:
#include <iostream>#include <cstring>using namespace std;int a[50];int& fun(int& x){return x;}int main(){int n;while(cin>>n){int i;int tmp;for(i = 1;i <= n;i++) {cin>>tmp;/*normal assignment way*///a[i] = tmp;fun(a[i]) = tmp;}for(i = 1;i <= n-1;i++)cout<<a[i]*2<<' ';cout<<a[i]*2<<endl;}return 0;}
形如这样的程序,在进行赋值操作的时候,为啥fun函数的返回值可以接受一个赋值呢?
要搞明白这个问题,我们不妨先来考虑另一个问题,来看code:
#include <stdio.h> char *RetMemory() { char p[]="hello world\n"; return p; } int main( ) { char *str=NULL; str=RetMemory(); printf(str); return 0;
}
str并不能够顺利输出“hello world\n”,因为那是在fun函数中的一个临时变量,在fun函数的调用结束后他的空间就自动被销毁了,这就引出了我们的问题,怎样才能将函数内的变量返回回去?其实很简单,我们只要在一开始接受参数的时候用引用即可,即我们的形参是引用,然后返回的值也是引用,这样直观的来看我们会发现函数就像一个管道,起到了传输变量的作用!
因此我们就不难理解为什么对左右移运算符的重载函数的返回类型和第一个参数的类型都要设置成引用:
ostream & operate <<(ostream &output, Complex &c)//定义流提取运算符“<<”重载函数 { output<<”(”<<c.real<<”+”<<c.imag<<”i)”<<endl; return output; }
0 0
- 关于C中函数参数,指针-常量-引用解释的4个函数例子
- C++中关于函数的引用
- 关于C中指针的引用*&
- C/C++中关于地址、指针和引用变量的学习笔记(四) : 函数
- 关于C中指针的引用,解引用与脱去解引用
- 关于C中指针的引用,解引用与脱去解引用
- 关于C中指针的引用,解引用与脱去解引用
- 关于C中指针的引用,解引用与脱去解引用
- PHP中关于在函数内引用全局变量的问题
- 关于C++中函数返回引用的讨论
- 关于C++中函数返回引用的讨论
- 关于C++中函数返回引用的讨论
- 关于C++中函数返回引用的讨论
- 关于C++中函数返回引用的讨论
- 关于C++中函数返回引用的讨论
- 关于MFC中成员函数引用CDC的问题
- c语言中关于时间的函数
- C语言中关于时间的函数
- hdu-1800
- 动态规划中的0-1背包模型
- CF#345 div2 A\B\C题
- C++中输入输出流运算符的重载
- batch learning和stochastic learning
- C++中关于函数的引用
- iOS手势学习
- 解决Java从MySQL读取大量数据时卡在SocketInputStream.socketRead0的问题
- 关于android真机访问本地电脑服务器以及访问数据库的那点事
- JDBC之ResultSet
- C#格式化文件大小
- Alljoyn瘦客户端库介绍
- Java如何让异常处理机制更完备规范
- Proguard代码混淆