github上的每日学习 5

函数
一、 引用(&)的理解与使用
众所周知,函数与主函数之间的值传递一直都是十分恼人的,这里分为单向传递和双向传递。
这里学习了C++中的一种方法实现值传递,这就是引用类型。
它的意义是这样的,举一个例子,事先有一个变量叫a,这是我又把a取一个名字叫b,这时,a、b其实是一个存储空间里的一个值,如果当a在主函数里使用,b在特定函数里使用,这样就可以实现值的传递(其实也不算传递,就是更改而已)。
格式:
int &b=a;//a又命名为b
练习的代码及结果:

#include<iostream>
using namespace std;
int main()
{
	void swap(int& x, int& y);
	int a, b;
	cin >> a >> b;
	swap(a, b);
	cout << a << ' '<< b;
	return 0;
	
}
void swap(int& x, int& y)
{
	int t;
	t = x;
	x = y;
	y = t;
}

二、 含可变参数的函数
对它的理解,当你在写一个函数的时候肯定不会想要只是!!仅仅!!在一个特定的地方用到它,你希望,啊,比如吧,当你想要一个函数输出整个程序不同地方的错误反馈时,你提供的给这个函数参数个数不一定相同,这时候你就需要拥有可以变参数个数(长度)的函数,这就是含可变参数函数的一个应用场景。
实现这种函数主要有两种方法:
1、 应用initializer_list
当你的所有实参类型相同,可以传递一个名为initializer_list的标准库类型。这是一种标准库类型,用于表示某种特定类型的值的数组,该类型定义在同名的头文件中。
以下截图是它提供的一些操作:

2、 编写可变参数的模板。
这是在实参的类型不同时。
三、 内联函数(inline)
这就是当我们在调用简单函数的时候能够提高运行效率的机制,是编译器帮我们实现的。具体的步骤,就是在调用简单函数的时候要涉及到函数体的替换,参数传递,控制转移这些步骤浪费时间,应用inline函数后,就告诉了编译器,把这简单的函数直接复制到原函数里成为它其中的一段代码,这样节省时间。
注意:
1、 内联函数里不能有循环语句和switch语句
2、 对于内联函数的定义必须在内联函数第一次被调用之前
3、 对内联函数不能进行异常接口声明
代码练习:

#include<iostream>
using namespace std;
const double PI = 3.1415;
inline double calArea (double radius)

{
	return PI * radius * radius;
}
int main()
{
	
	double r;
	cin >> r;
	double area;
	area=calArea(r);
	cout << area;
	return 0;
	
}

posted @ 2020-02-02 19:01  zouzouy  阅读(98)  评论(0编辑  收藏  举报