亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

C++ 基礎(chǔ)教程

C++ 流程控制

C++ 函數(shù)

C++ 數(shù)組 & 字符串

C++ 數(shù)據(jù)結(jié)構(gòu)

C++ 類 & 對(duì)象

C++ 指針

C++ 繼承

C++ STL 教程

C++ 參考手冊(cè)

C++ 函數(shù)

在本文中,您將學(xué)習(xí)有關(guān)C ++中函數(shù)的所有知識(shí)。有哪些類型的函數(shù),如何在示例中使用它們。

在編程中,函數(shù)是指將代碼分組以執(zhí)行特定任務(wù)的代碼塊。

取決于函數(shù)是預(yù)定義的還是由程序員創(chuàng)建的;函數(shù)有兩種類型:

  1. 標(biāo)準(zhǔn)庫函數(shù)

  2. 用戶定義函數(shù)

標(biāo)準(zhǔn)庫函數(shù)

庫函數(shù)是C ++編程中的內(nèi)置函數(shù)。

程序員可以通過直接調(diào)用函數(shù)來使用庫函數(shù);他們不需要自己編寫。

示例1:庫函數(shù)

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    double number, squareRoot;
    cout << "輸入一個(gè)數(shù)字: ";
    cin >> number;

    // sqrt()是一個(gè)用于計(jì)算平方根的庫函數(shù)
    squareRoot = sqrt(number);
    cout << "數(shù)字 " << number << " 的平方根= " << squareRoot;
    return 0;
}

輸出結(jié)果

輸入一個(gè)數(shù)字: 26
數(shù)字 26 的平方根 = 5.09902

在上面的示例中,調(diào)用sqrt()庫函數(shù)來計(jì)算數(shù)字26的平方根。

上述程序中的注意代碼#include <cmath>。 在這里cmath是頭文件。sqrt()函數(shù)定義在cmath頭文件中。

當(dāng)您使用#include <cmath>將文件cmath的內(nèi)容包含到這個(gè)程序中時(shí),您可以使用cmath中定義的所有函數(shù)。

每個(gè)有效的C ++程序至少具有一個(gè)函數(shù),即main()函數(shù)。

用戶定義函數(shù)

C ++允許程序員定義自己的函數(shù)。

用戶定義的函數(shù)將執(zhí)行特定任務(wù)的代碼分組,并為該組代碼指定名稱(標(biāo)識(shí)符)。

從程序的任何部分調(diào)用該函數(shù)時(shí),它們都將執(zhí)行函數(shù)主體中定義的代碼。

用戶定義函數(shù)在C編程中如何工作?

C ++編程中的函數(shù)工作

根據(jù)上圖。

當(dāng)程序開始運(yùn)行時(shí),系統(tǒng)將調(diào)用main()函數(shù),即程序開始運(yùn)行時(shí)從main()函數(shù)執(zhí)行代碼。

當(dāng)程序的控制權(quán)到達(dá)main()內(nèi)部的function_name()時(shí),它將移至void function_name()并執(zhí)行void function_name()內(nèi)部的所有代碼。

然后,程序的控制返回到主函數(shù),在該函數(shù)中,如上圖所示,執(zhí)行了對(duì)function_name()的調(diào)用之后的代碼。

示例2:用戶定義的函數(shù)

C ++程序?qū)蓚€(gè)整數(shù)相加。創(chuàng)建一個(gè)函數(shù)add()以添加整數(shù)并在main()函數(shù)中顯示sum。

#include <iostream>
using namespace std;

// 函數(shù)原型(聲明)
int add(int, int);

int main()
{
    int num1, num2, sum;
    cout<<"輸入兩個(gè)要相加的數(shù)字: ";
    cin >> num1 >> num2;

    // 調(diào)用函數(shù)
    sum = add(num1, num2);
    cout << "總和 = " << sum;
    return 0;
}

// 函數(shù)定義
int add(int a, int b)
{
    int add;
    add = a + b;

    // 返回語句
    return add;
}

輸出結(jié)果

輸入兩個(gè)要相加的數(shù)字: 8
-4
總和 = 4

函數(shù)原型(聲明)

如果在main()函數(shù)之后定義用戶定義的函數(shù),編譯器將顯示錯(cuò)誤。這是因?yàn)榫幾g器不知道用戶定義的函數(shù)、傳遞給函數(shù)的參數(shù)類型和返回類型。

在C ++中,函數(shù)原型是函數(shù)的聲明,而沒有它的主體來提供有關(guān)用戶定義函數(shù)的編譯器信息。 上例中的函數(shù)原型為:

int add(int, int);

你可以看到,原型中沒有函數(shù)體。而且,只有返回類型的參數(shù),沒有參數(shù)。您也可以像下面這樣聲明函數(shù)原型,但不需要編寫參數(shù)。

int add(int a, int b);

注意:如果用戶定義的函數(shù)在main()函數(shù)之前存在,則不必定義原型。

函數(shù)調(diào)用

要執(zhí)行功能主體的代碼,需要調(diào)用(調(diào)用)用戶定義的功能。

在上面的程序中,add(num1,num2);內(nèi)部main()函數(shù)調(diào)用用戶定義的函數(shù)。

該函數(shù)返回一個(gè)整數(shù),該整數(shù)存儲(chǔ)在variable中add。

函數(shù)定義

函數(shù)本身稱為函數(shù)定義。上面程序中的函數(shù)定義是:

// 函數(shù)定義
int add(int a,int b)
{
    int add;
    add = a + b;
    return add;
}

當(dāng)函數(shù)被調(diào)用時(shí),控制被轉(zhuǎn)移到函數(shù)體的第一個(gè)語句。

然后,依次執(zhí)行函數(shù)體中的其他語句。

當(dāng)函數(shù)定義中的所有代碼都被執(zhí)行時(shí),程序的控制移動(dòng)到調(diào)用程序。

將參數(shù)傳遞給函數(shù)

在編程中,參數(shù)(parameter)是指在調(diào)用函數(shù)時(shí)傳遞給函數(shù)(函數(shù)定義)的數(shù)據(jù)。

在上面的示例中,兩個(gè)變量num1和num2在函數(shù)調(diào)用期間被傳遞給函數(shù)。這些參數(shù)稱為實(shí)際參數(shù)。

num1和num2的值分別初始化為變量a和b。 這些參數(shù)a和b稱為形式參數(shù)。

如下圖所示:

在C ++編程中將參數(shù)傳遞給函數(shù)

關(guān)于傳遞參數(shù)的注意事項(xiàng)

  • 實(shí)際參數(shù)和形式參數(shù)的數(shù)量應(yīng)相同。(例外:函數(shù)重載

  • 第一個(gè)實(shí)際參數(shù)的類型應(yīng)與第一個(gè)形式參數(shù)的類型匹配。同樣,第二個(gè)實(shí)際參數(shù)的類型應(yīng)該與第二個(gè)形式參數(shù)的類型匹配,依此類推。

  • 您可以在不傳遞任何參數(shù)的情況下調(diào)用函數(shù)a。 傳遞給函數(shù)的參數(shù)數(shù)量取決于程序員如何解決問題。

  • 您可以為參數(shù)指定默認(rèn)值。這些參數(shù)稱為默認(rèn)參數(shù)

  • 在上面的程序中,兩個(gè)參數(shù)都是int類型。但是沒有必要同時(shí)使用兩個(gè)相同類型的參數(shù)。

return 語句

函數(shù)可以使用return語句將單個(gè)值返回到調(diào)用程序。

在上面的程序中,使用以下語句將add的值從用戶定義函數(shù)返回到調(diào)用程序:

return add;

下圖演示了return語句的工作。

從C ++編程中的函數(shù)返回值。

在上面的程序中,將用戶定義函數(shù)中的add值返回給調(diào)用函數(shù)。然后該值被存儲(chǔ)到一個(gè)變量sum中。

注意返回的變量,即add是int類型,sum也是int類型。

另外,請(qǐng)注意,函數(shù)的返回類型是在函數(shù)聲明符int add(int a, int b)中定義的,在add(int a, int b)之前的int表示函數(shù)應(yīng)該返回一個(gè)int類型的值。

如果沒有值返回到調(diào)用函數(shù),則應(yīng)使用void。