[C++] 函数总结

1.函数的定义

定义函数三要素:函数名、参数列表、返回值;

1.2.函数原型

在函数使用前,必须对它进行声明,这个声明也称为函数原型。如:

#include 
//add()函数原型
int add(const int& i,const  int& j);
int main()
{
   
	using namespace std;

	int i = 45;
	int j = 200;
	int sum = add(i,j);
	system("pause");
	return 0;
}

int add(const int& i, const int& j) {
   
	std::cout << "i:" << i << ",j:" << j << std::endl;
	return i + j;
}

函数原型和函数唯一的区别就是函数原型不提供函数体,它描述了函数到编译器的接口,由于不需要方法体,因此函数声明不要求提供变量名,不过应尽可能写上。

函数原型一般在头文件中声明。

2.函数参数的传递

函数参数的传递有三种方式:按值传递、指针传递、引用传递,下面我们来看他们各自的特点。

2.1.按值传递

c++中通常按值传递(非引用类型),也就是说当实参传递给形参时,将实参的值赋给了形参,实参并没有影响,如:

#include 

void Swap(int i,int j);
int main()
{
   
	using namespace std;
	int fir = 100;
	int sec = 300;
	Swap(fir, sec);
	cout << "fir:" << fir << ",sec:" << sec << endl;
	system("pause");
	return 0;
}

void Swap(int i, int j) {
   
	int temp;
	temp = i;
	i = j;
	j = temp;
}

运行该程序,发现并没有交换fir和sec的值,在函数调用时,函数将创建一个int类型的变量i,然后将fir的值100赋给它,因此实际上函数Swap()中操作的是局部变量i,而非变量fir。

按值传递导致被调用函数使用调用程序传递的值的拷贝。

2.2.按指针传递

当函数传递指针类型参数时,实际上,也是按值传递,但是这个值是一个地址,因此,就可以通过这个指针来修改所指对象的值了。如:

#

你可能感兴趣的:(C++)