C++ 函數(shù)

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

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

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

  1. 標準庫函數(shù)

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

標準庫函數(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 << "輸入一個數(shù)字: ";
    cin >> number;

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

輸出結(jié)果

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

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

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

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

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

用戶定義函數(shù)

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

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

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

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

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

根據(jù)上圖。

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

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

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

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

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

#include <iostream>
using namespace std;

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

int main()
{
    int num1, num2, sum;
    cout<<"輸入兩個要相加的數(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é)果

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

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

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

在C ++中,函數(shù)原型是函數(shù)的聲明,而沒有它的主體來提供有關用戶定義函數(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ù)返回一個整數(shù),該整數(shù)存儲在variable中add。

函數(shù)定義

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

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

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

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

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

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

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

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

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

如下圖所示:

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

關于傳遞參數(shù)的注意事項

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

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

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

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

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

return 語句

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

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

return add;

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

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

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

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

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

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

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清