[C++基础]004_函数

[C++基础]004_函数

 

函数的声明方法1:

复制代码
 1 #include <iostream>
 2 using namespace std;
 3 
 4 int function();
 5 
 6 int main(){
 7     function();
 8     return 0;
 9 }
10 
11 int function(){
12     cout<<"Hello, Function."<<endl;
13     return 0 ;
14 }
复制代码

函数的声明方法2:

复制代码
 1 #include <iostream>
 2 using namespace std;
 3 
 4 int function(){
 5     cout<<"Hello, Function."<<endl;
 6     return 0 ;
 7 }
 8 
 9 int main(){
10     function();
11     return 0;
12 }
复制代码

看出来方法1和方法2的区别了吧,函数体的位置不一样,很简单,复习一下!

[C++基础]005_函数参数

 

函数参数的传递学问也不小,不过呢,核心就是两个概念:值传递和引用传递,也很简单。

值传递:传递参数的复制体,函数体内对参数进行修改,原参数值不会发生变化。

引用传递:传递函数的地址,函数体内修改参数会引起原参数值的变化。

值传递

复制代码
 1 using namespace std;
 2 
 3 int function(int a, int b){
 4     cout<<"a + b = "<<(a+b)<<endl;
 5     return 0 ;
 6 }
 7 
 8 int main(){
 9     int a = 1;
10     int b = 2;
11     function(a, b);
12     system("pause");
13     return 0;
14 }
复制代码

    输出:

 

a+b = 3
请按任意键继续. . .

 

 

引用传递

 

复制代码
 1 #include <iostream>
 2 using namespace std;
 3 
 4 int function(int& a, int& b){
 5     cout<<"a + b = "<<(a+b)<<endl;
 6     a = 10;
 7     b = 20;
 8     return 0 ;
 9 }
10 
11 int main(){
12     int a = 1;
13     int b = 2;
14     function(a, b);
15     cout<<"a = "<<a<<endl;
16     cout<<"b = "<<b<<endl;
17     system("pause");
18     return 0;
19 }
复制代码

 

    输出:

a + b = 3
a = 10
b = 20
请按任意键继续. . .

注意,a和b的值发生变化了!

 

[C++基础]006_函数默认参数

 

 
1 int function(int a, int b = 0)
2 {
3     cout<<"a + b = "<<(a+b)<<endl;
4     return 0 ;
5 }

上面的 int b = 0就是默认参数了,如果不传入b值的话,函数默认将使用b=0.

注意:

默认参数必须出现在结尾,或连续结尾。即如下的声明是非法的:

复制代码
1 int function(int a=0, int b)
2 {
3     cout<<"a + b = "<<(a+b)<<endl;
4     a = 10;
5     b = 20;
6     return 0 ;
7 }
复制代码

而下面是合法的:

复制代码
1 int function(int a, int b=2, int c=1)
2 {
3     cout<<"a + b = "<<(a+b)<<endl;
4     a = 10;
5     b = 20;
6     return 0 ;
7 }
复制代码

下面的也是合法的:

复制代码
1 int function(int a=1, int b=2)
2 {
3     cout<<"a + b = "<<(a+b)<<endl;
4     a = 10;
5     b = 20;
6     return 0 ;
7 }
posted @ 2013-03-18 11:57  小薇林  阅读(182)  评论(0编辑  收藏  举报