`

c++基础之四

    博客分类:
  • c++
 
阅读更多
#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++基础知识总结

    ### C++基础知识总结 #### 一、C++数据和变量的类型及变量作用域 **1. 基本的内置类型** C++提供了一系列基本的内置数据类型,用于存储不同种类的数据。以下是一些常见的类型及其特点: - **布尔型 (`bool`)**:...

    C++基础与提高-王桂林-4rd.pdf

    根据提供的文件信息,以下是...王桂林的《C++基础与提高》作为教材,能够为读者提供系统性的C++语言学习和深入讨论。通过学习这些知识,读者能够掌握C++语言的核心特性和编程技术,为进一步的软件开发打下坚实的基础。

    C++基础入门.pdf

    C++基础入门 C++是一种功能强大且灵活的编程语言,本文档旨在为读者提供一个基本的C++基础知识入门指南,包括创建项目、编写代码、运行程序、注释、变量、常量、关键字、标识符命名规则和数据类型等方面的知识点。 ...

    C++笔试面试题基础

    9. **指针与引用**:指针是C++的特色之一,它存储了变量的地址,可以用来间接访问和修改变量。引用是另一种别名,类似于指针但更安全,因为引用必须在声明时初始化且不能改变引用的对象。 10. **内存管理**:C++...

    C++习题 C++习题 C++基础试题

    通过解决这些C++基础试题,学习者将能更好地理解和掌握C++的核心概念,为进一步深入学习C++的高级特性打下坚实基础。同时,实践是检验知识掌握程度的最佳方式,因此不断做题和编写代码对于提升C++技能至关重要。

    漂亮C++基础ppt

    【C++基础ppt】是一个针对初学者的详细教程,涵盖了C++编程语言的关键概念和核心要素。本教程旨在帮助学习者构建扎实的C++基础知识,为深入理解和应用该语言打下坚实的基础。以下是对每个章节内容的详细阐述: 1. *...

    C++基础入门.md.pdf

    C++是一种静态类型、编译式、通用的编程语言,由Bjarne Stroustrup在1979年开始开发,最初被称为C with Classes,...以上内容为C++程序开发的基础知识。掌握这些知识点对于编写C++程序和进一步学习该语言是非常重要的。

    一套C++基础讲义(PPT)

    C++是一种强大的、通用的编程...总之,这套C++基础讲义结合PPT和源代码实例,将为你的C++学习之路提供坚实的基础。通过系统学习和实践,相信你能够熟练掌握这门强大的编程语言,为未来的软件开发生涯打下坚实的基础。

    计算机C++基础题库

    计算机C++基础题库 计算机C++基础题库是指对C++编程语言的基本概念、语法、特性和应用的总结和归纳。本题库涵盖了C++的基本语法、函数、类和对象、继承、多态、异常处理、文件输入输出、模板编程、泛型编程等方面的...

    C++基础知识讲义v1

    《C++基础知识讲义v1》是一份专为初学者设计的C++教程,涵盖了C++编程语言的基础概念和重要特性。这份讲义通过一系列的PPT文件,深入浅出地讲解了C++的核心知识,旨在帮助学习者快速掌握这门强大的编程语言。 1. **...

    Visual C++ 游戏编程基础

    在《Visual C++ 游戏编程基础》这本书中,作者深入浅出地介绍了使用Visual C++进行游戏开发的基础知识和技巧。本部分压缩包包含了书中的部分源代码和相关资源,便于读者实践和理解。以下是关于这个主题的一些关键...

    C++基础面试题

    以上是C++基础面试题可能会涉及到的主要知识点。熟练掌握这些概念和技巧,对于C++初学者来说,不仅能通过面试,还能为日后的编程生涯打下坚实基础。在实际面试中,还会涉及到具体编程题目,需要考生能够实际编写代码...

    编程语言C++基础知识课件

    C++是一种强大的、通用的编程语言,由Bjarne Stroustrup在1979年设计并开发,...这份"编程语言C++基础知识课件"将引导你逐步掌握这个强大语言的关键概念,无论你是初学者还是有一定经验的开发者,都将从中受益匪浅。

    c++基础例题200个

    "c++基础例题200个"这个资源提供了丰富的实践题目,帮助初学者深入掌握C++的基本语法、数据结构以及编程技巧。下面,我们将详细讨论其中可能涉及的一些关键知识点。 1. **基本语法**:C++的基础语法包括变量声明、...

    C++基础笔记资料.zip

    这份"C++基础笔记资料.zip"包含的资源是学习C++基础知识的重要参考资料,适合初学者和有一定经验的开发者用来巩固基础。 C++起源于C语言,由Bjarne Stroustrup在1979年开发,旨在增加程序的抽象层次和类型安全性。...

    C++基础学习文档

    在"C++基础学习文档"中,包含的三个关键资源旨在帮助初学者掌握C++的基础知识。 首先,"C++Primer3rdEdition中文完美版.pdf"是C++ Primer的第三版中文翻译,这是一本非常经典的C++入门教材。该书全面覆盖了C++的...

    CV算法岗知识点及面试问答汇总(主要分为计算机视觉、机器学习、图像处理和 C++基础四大块).zip

    CV算法岗知识点及面试问答汇总(主要分为计算机视觉、机器学习、图像处理和 C++基础四大块).zip CV算法岗知识点及面试问答汇总(主要分为计算机视觉、机器学习、图像处理和 C++基础四大块).zip CV算法岗知识点及...

    C++ 基础知识学习 C++ 基础知识.mk

    C++的基础知识是所有C++程序员必须掌握的,这包括但不限于语法、变量、数据类型、运算符、控制结构、函数、类与对象、模板和异常处理。 1. **基本语法**:C++的语法基于C语言,但增加了许多面向对象的特性。它遵循...

    c++基础与提高.rar

    本教程“C++基础与提高”旨在帮助学习者从零开始掌握C++的基础知识,并进一步提升技能,实现对C++的深入理解和熟练运用。 一、C++基础 1. **语法结构**:C++的语法结构基于C语言,包括变量声明、数据类型(如int、...

Global site tag (gtag.js) - Google Analytics