C++阶段01笔记06【函数(概述、定义、调用、值传递、常见样式、声明、分文件编写)】
C++| 匠心之作 從0到1入門學編程【視頻+課件+筆記+源碼】
目錄
6 函數
6.1 概述
6.2 函數的定義
函數的語法
示例:加法函數
6.3 函數的調用
示例
6.4 值傳遞
示例
6.5 函數的常見樣式
示例
6.6 函數的聲明
示例
6.7 函數的分文件編寫
示例
1、swap.h頭文件
2、swap.cpp
3、main函數源文件
總結!函數的分文件編寫
6 函數
6.1 概述
作用:將一段經常使用的代碼封裝起來,減少重復代碼。
一個較大的程序,一般分為若干個程序塊,每個模塊實現特定的功能。
6.2 函數的定義
函數的定義一般主要有5個步驟:
函數的語法
返回值類型 函數名 (參數列表) {函數體語句return表達式 }-
返回值類型:一個函數可以返回一個值。(在函數定義中)
-
函數名:給函數起個名稱。
-
參數列表:使用該函數時,傳入的數據。
-
函數體語句:花括號內的代碼,函數內需要執行的語句。
-
return表達式:和返回值類型掛鉤,函數執行完后,返回相應的數據。
示例:加法函數
示例:定義一個加法函數,實現兩個數相加。
?
#include <iostream> using namespace std;//函數的定義 //語法:返回值類型 函數名 (參數列表){ 函數體語句 return表達式}//加法函數,實現兩個整型相加,并且將相加的結果進行返回 int add(int num1, int num2) //定義中的num1,num2稱為形式參數,簡稱形參 {int sum = num1 + num2;return sum; }int main() //程序入口函數 {system("pause");return 0; }6.3 函數的調用
功能:使用定義好的函數。
語法:函數名(參數)
示例
??
#include <iostream> using namespace std;//函數定義:定義加法函數 //函數定義的時候,num1和num2并沒有真實數據,它只是一個形式上的參數,簡稱形參 int add(int num1, int num2) //參數列表(形參列表)定義中的num1,num2稱為形式參數,簡稱形參 {int sum = num1 + num2;return sum; }int main() {//mian函數中調用add函數int a = 10;int b = 10;//函數調用語法:函數名稱(參數) 當調用函數的時候,實參的值會傳遞給形參int sum = add(a, b); //調用時的a、b稱為實際參數,簡稱實參cout << "sum = " << sum << endl;a = 100;b = 100;sum = add(a, b);cout << "sum = " << sum << endl;system("pause");return 0; }總結:函數定義里小括號內稱為形參,函數調用時傳入的參數稱為實參。
6.4 值傳遞
-
所謂值傳遞,就是函數調用時 實參將數值傳入給形參。
-
值傳遞時,如果形參發生,并不會影響實參。
示例
??
#include <iostream> using namespace std; //值傳遞 //定義函數,實現兩個數字進行交換的函數//如果函數不需要返回值,聲明的時候可以寫void void swap(int num1, int num2) {cout << "交換前:" << endl;cout << "num1 = " << num1 << endl;cout << "num2 = " << num2 << endl;int temp = num1; //數據交換num1 = num2;num2 = temp;cout << "交換后:" << endl;cout << "num1 = " << num1 << endl;cout << "num2 = " << num2 << endl;//return ; 當函數聲明時候,返回值不需要的時候,可以不寫return }int main() {int a = 10; //創建變量a的時候,在內存中開辟4個字節給變量aint b = 20;cout << "mian中的 a = " << a << endl;cout << "mian中的 b = " << b << endl;//當我們做值傳遞的時候,函數的形參發生改變,并不會影響實參!swap(a, b); //調用函數體時,需要分配空間給num1、num2,與a、b不是同一個東西cout << "mian中的 a = " << a << endl;cout << "mian中的 b = " << b << endl;system("pause");return 0; }總結: 值傳遞時,形參是修飾不了實參的。
6.5 函數的常見樣式
常見的函數樣式有4種:
無參無返
有參無返
無參有返
有參有返
示例
??
#include <iostream> using namespace std;//函數常見樣式//1、無參無返 void test01() {//void a = 10; //無類型不可以創建變量,原因是無法分配內存cout << "this is test01 !" << endl;//test01(); 函數調用 }//2、有參無返 void test02(int a) {cout << "this is test02 !a = " << a << endl;// cout << "this is test02 !" << endl;// cout << "a = " << a << endl; }//3、無參有返 int test03() {cout << "this is test03 !" << endl;return 10; }//4、有參有返 // int test04(int a) int test04(int a, int b) {cout << "this is test04 !" << endl;int sum = a + b;return sum;// cout << "this is test04 !a = " << a << endl;// return a; }int main() {//1、無參無返函數調用test01();//2、有參無返函數調用test02(100);//3、無參有返函數調用int num1 = test03();cout << "num1 = " << num1 << endl;//4、有參有返函數調用// int num2 = test04(10000);int num2 = test04(3, 6);cout << "num2 = " << num2 << endl;system("pause");return 0; }6.6 函數的聲明
作用: 告訴編譯器函數名稱及如何調用函數。函數的實際主體可以單獨定義。
-
函數的聲明可以多次,但是函數的定義只能有一次。
示例
#include <iostream> using namespace std;//提前告訴編譯器函數的存在(可以利用函數的聲明) //函數的聲明(無具體的代碼實現) //聲明可以寫多次,但是定義只能有一次 int max(int a, int b); int max(int a, int b); int max(int a, int b);int main() {int a = 100;int b = 200;cout << max(a, b) << endl; // 200system("pause");return 0; }//定義(函數的聲明) //比較函數,實現兩個整型數字進行比較,返回較大的值 int max(int a, int b) {return a > b ? a : b; } // 下面是錯的,定義只能有一次! // int max(int a, int b) // { // return a > b ? a : b; // }6.7 函數的分文件編寫
作用:讓代碼結構更加清晰。代碼量越來越大,結構可能不會很清晰!
函數分文件編寫一般有4個步驟:
創建后綴名為.h的頭文件
創建后綴名為.cpp的源文件
在頭文件中寫函數的聲明
在源文件中寫函數的定義
示例
#include <iostream> using namespace std;//函數的分文件編寫 //實現兩個數字進行交換的函數//函數的聲明 void swap(int a, int b);//函數的定義 void swap(int a, int b) {int temp = a;a = b;b = temp;cout << "a = " << a << endl;cout << "b = " << b << endl; }//1、創建.h后綴名的頭文件 //2、創建.cpp后綴名的源文件 //3、在頭文件中寫函數的聲明 //4、在源文件中寫函數的定義int main() {int a = 10;int b = 20;swap(a, b);system("pause");return 0; }1、swap.h頭文件
//swap.h頭文件 #include <iostream> using namespace std;//實現兩個數字交換的函數聲明 void swap(int a, int b);2、swap.cpp
//swap.h頭文件 #include "swap.h"//函數的定義 void swap(int a, int b) {int temp = a;a = b;b = temp;cout << "a = " << a << endl;cout << "b = " << b << endl; }3、main函數源文件
//main函數源文件 #include "swap.h"int main() {int a = 100;int b = 200;swap(a, b);system("pause");return 0; }總結!函數的分文件編寫
總結
以上是生活随笔為你收集整理的C++阶段01笔记06【函数(概述、定义、调用、值传递、常见样式、声明、分文件编写)】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++阶段01笔记05【数组(概述、一维
- 下一篇: C++阶段01笔记07【指针(基本概念、