日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++阶段01笔记06【函数(概述、定义、调用、值传递、常见样式、声明、分文件编写)】

發布時間:2024/9/30 c/c++ 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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表達式 }
    • 返回值類型:一個函數可以返回一個值。(在函數定義中)

    • 函數名:給函數起個名稱。

    • 參數列表:使用該函數時,傳入的數據。

    • 函數體語句:花括號內的代碼,函數內需要執行的語句。

    • 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【函数(概述、定义、调用、值传递、常见样式、声明、分文件编写)】的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。