#include<iostream.h> void swap(int *,int *); void swap2(int &,int &); void swap3(int []); int main(){ int a=3,b=8; cout<<a<<","<<b<<endl; swap(&a,&b); cout<<a<<","<<b<<endl; swap2(a,b); cout<<a<<","<<b<<endl; } void swap(int *a,int *b){//交换数据 int temp=*a; *a=*b; *b=temp; } void swap2(int &a,int &b){//引用传递参数 int temp=a; a=b; b=temp; } void swap2(int numb[]){ int a=numb[0]; numb[0]=numb[1]; numb[1]=a; }
从上面的代码中可以看到指针和引用都可以传递参数并改变值,传递的是地址。数组是引用传递,传递的是数组的首地址,在函数里面发生变化后会改变数组的值。
参数的传递之二。(集合的传递如vector)
std::vector<int> li; for(i=0;i<10;i++)li.push_back(100-i); //初始化 swap4(li); swap5(li);//等同于swap5(getLi()); void swap4(std::vector<int> q){ //函数调用 for(int i=0;i<q.size();i++) q[i]=i*2; } void swap5(std::vector<int>& li){ //使用引用接收向量集合 for(int i=0;i<li.size();i++)li[i]=2*i+1; } std::vector<int>& getLi(){ return li; //其中li的类型是std::vector<int> }
swap4()函数调用之后,不会改变集合里面的值。使用引用接收集合会改变内容,引用接收的是地址,getLi()返回的仅仅是内容而已
引用的使用:
int one=3; int &rInt=one;//rInt引用作为one的别名来使用 int *ip=&one;//是取地址操作符 cout<<&one<<&rInt<<endl;//表示变量和引用取地址。
使用引用传递参数来改变参数,如上swap2().
使用引用作为返回值
#include<iostream.h> float temp; float fn1(float r){ temp=r*r*3.14; return temp; } float& fn2(float r){ temp=r*r*3.14; return temp } int main(){ float a =fn1(5.0); float& b=fn1(5.0); //waring float c =fn2(5.0); //程序的效率和空间利用率较高 float& d=fn2(5.0); }
相关推荐
C++基础与提高-王桂林-4rd 2019年6月最新版本。
《Visual C++ 游戏编程基础》一书的源代码,因文件太大,分四个部分上传,此为第四部分
2. C++基础 Basics of C++ 1. C++程序结构 Structure of a program 2. 变量和数据类型 Variables and Data types 3. 常量 Constants 4. 操作符/运算符 Operators 5. 控制台交互 Communication through ...
C++程序设计基础课后答案 第四章,十分详细完整,欢迎下载
资源来自加拿大蒙特利尔协和大学计算机本科专业C++培训课程授课讲义, 从基础介绍到深入。
C++程序设计基础(第4版)周霭如 林伟健 课件
C++程序设计基础(第4版)(上) 周霭如 林伟健 编著 电子教案
第1篇 C++基础篇 第1章 C++概述 1 1.1 引言 1 1.1.1 C++的历史沿革 1 1.1.2 入门C++ 2 1.1.3 编程思想的转变 3 1.2 C++概述 4 1.2.1 C++的特征 5 1.2.2 C与C++的比较 5 1.2.3 C++的应用领域 6 1.3 C++源...
C++著名的基础书籍潘嘉杰著,很适合初学者~~口碑很好的哦~~ 适合基础看的,大牛飞过~~~ 第一篇 过程化的程序设计 第1章 良好的学习开端 1 1.1 软件与程序 1 1.2 程序设计要做什么 1 1.3 选好一种语言 2 1.4...
大一C++课程答案,需要的可以下载哦,第四版上册
学堂在线上面,清华大学郑莉老师的C++基础课程第四章的讲义,老师的课通俗易懂,十分推荐。
c++ c++_c++编程基础之leetcode题解第18题四数之和
c++入门——图论基础,带标程,带习题,赶紧下载吧
C++程序设计基础(第4版)课后习题解答,完整版
(4)\视频\01_第1章_c++概述;目录中文件数:3个 ├─1.00 qtcreater软件的安装.mp4 ├─1.01 创建cpp工程.mp4 ├─1.02 cpp的工程基本设置.mp4 (5)\视频\02_第2章_c++初始;目录中文件数:3个 ├─2.00 面向对象和过程...
C++超级经典书籍合集(4本书合集)之c++实务精选 1、c++ templates.pdf 2、美河提供c++多范型设计.pdf 3、美河提供c++编程艺术.pdf 4、c++代码设计与重用 c++八大金刚: 1、Essentital c++---lippman---C++之父,...
C++程序设计基础,里面包含了C++学习当中基础题的汇总,绝对对你有帮助
C++程序设计基础(第4版上)[周霭如,林伟健)PPT
CV算法岗知识点及面试问答汇总(主要分为计算机视觉、机器学习、图像处理和 C++基础四大块).zip CV算法岗知识点及面试问答汇总(主要分为计算机视觉、机器学习、图像处理和 C++基础四大块).zip CV算法岗知识点及...
01 一、名字空间( 标准库中的标识符都定义在std名字空间中 ) 1、 名字空间的定义 namespace 名字空间名{ 名字空间成员 } ...4、 无名名字空间 namespace { 名字空间成员; } 5、无名名字空间的声明