c++ Primer 第六章 函数

6.1 函数基础

阶乘函数

int fact(int val) {
	int ret = 1;
	while (val > 1) 
		ret *= val--;
	return ret;
}

int main() {
	int val = 5;
	
	cout << fact(5) << endl;
	
	return 0;
} 

6.2 参数传递

6.2.1 传值参数

int main() {
	int n = 0;
	int i = n; 
	i = 42; // i值改变, n值不会改变
	
	cout << n << " " << i << endl; 
	
	return 0;
} 

6.2.2 传引用参数

int main() {
	int n = 0;
	int &r = n; // r绑定n,r为n的另一个名字 
	
	cout << "n: " << n << " " << "r: " << r << endl;
	
	r = 42;
	cout << "n: " << n << " " << "r: " << r << endl;
	
	n = 41;
	cout << "n: " << n << " " << "r: " << r << endl;

	return 0;
} 

引用传递与值传递比较

void test1(int i) {
	i = 0; 
}

void test2(int &i) {
	i = 0;
}

int main() {
	int i1 = 1, i2 = 1;
	test1(i1);
	test2(i2);
	cout << "i1: " << i1 << endl; // 1 值没有改变
	cout << "i2: " << i2 << endl; // 0 值改变
	
	return 0;
} 

6.3 返回类型和return语句

6.4 函数重载

函数名相同但参数不同

posted @ 2022-09-17 15:51  hjy94wo  阅读(27)  评论(0)    收藏  举报