C 語(yǔ)言基礎(chǔ)教程

C 語(yǔ)言流程控制

C 語(yǔ)言函數(shù)

C 語(yǔ)言數(shù)組

C 語(yǔ)言指針

C 語(yǔ)言字符串

C 語(yǔ)言結(jié)構(gòu)體

C 語(yǔ)言文件

C 其他

C 語(yǔ)言參考手冊(cè)

C 用戶定義函數(shù)

在本教程中,您將借助示例學(xué)習(xí)在C語(yǔ)言編程中創(chuàng)建用戶定義的函數(shù)。

函數(shù)是執(zhí)行特定任務(wù)的代碼塊。

C允許您根據(jù)需要定義函數(shù)。這些函數(shù)稱為用戶定義函數(shù)。例如:

假設(shè)您需要?jiǎng)?chuàng)建一個(gè)圓并根據(jù)半徑和顏色為其著色。您可以創(chuàng)建兩個(gè)函數(shù)來(lái)解決此問(wèn)題:

  • createCircle() 函數(shù)

  • color() 函數(shù)

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

這是添加兩個(gè)整數(shù)的示例。為了執(zhí)行此任務(wù),我們創(chuàng)建了一個(gè)用戶定義的addNumbers()。

#include <stdio.h>
int addNumbers(int a, int b);         //函數(shù)原型

int main()
{
    int n1,n2,sum;

    printf("輸入兩個(gè)數(shù)字: ");
    scanf("%d %d",&n1,&n2);

    sum = addNumbers(n1, n2);        // 函數(shù)調(diào)用
    printf("sum = %d",sum);

    return 0;
}

int addNumbers(int a, int b)         //函數(shù)定義
{
    int result;
    result = a+b;
    return result;                  //返回語(yǔ)句
}

函數(shù)原型

函數(shù)原型只是函數(shù)的聲明,用于指定函數(shù)的名稱,參數(shù)和返回類型。它不包含函數(shù)體。

函數(shù)原型向編譯器提供信息,該函數(shù)以后可以在程序中使用。

函數(shù)原型的語(yǔ)法

returnType functionName(type1 argument1, type2 argument2, ...);

在上面的示例中,函數(shù)原型int addNumbers(int a, int b);為編譯器提供了以下信息:

  1. 函數(shù)的名稱是 addNumbers()

  2. 函數(shù)的返回類型是 int

  3. 類型的兩個(gè)參數(shù)int傳遞給函數(shù)

如果在main()函數(shù)之前定義了用戶定義的函數(shù),則不需要函數(shù)原型。

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

程序的控制權(quán)通過(guò)調(diào)用轉(zhuǎn)移到用戶定義的函數(shù)。

函數(shù)調(diào)用的語(yǔ)法

functionName(argument1, argument2, ...);

在上面的示例中,使用main()函數(shù)內(nèi)部的語(yǔ)句進(jìn)行函數(shù)addNumbers(n1, n2);調(diào)用。

函數(shù)定義

函數(shù)定義包含執(zhí)行特定任務(wù)的代碼塊。在我們的示例中,將兩個(gè)數(shù)字相加并返回。

函數(shù)定義的語(yǔ)法

returnType functionName(type1 argument1, type2 argument2, ...)
{
    //函數(shù)體
}

調(diào)用函數(shù)時(shí),程序的控制權(quán)將轉(zhuǎn)移到函數(shù)定義中。并且,編譯器開始在函數(shù)體內(nèi)執(zhí)行代碼。

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

在編程中,參數(shù)是指?jìng)鬟f給函數(shù)的變量。在上面的示例中,在函數(shù)調(diào)用期間傳遞了兩個(gè)變量n1和n2。

參數(shù)a和b接受函數(shù)定義中傳遞的參數(shù)。這些參數(shù)稱為函數(shù)的形式參數(shù)。

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

傳遞給函數(shù)的參數(shù)類型和形式參數(shù)必須匹配,否則,編譯器將引發(fā)錯(cuò)誤。

如果n1是char類型,a也應(yīng)該是char類型。如果n2為浮點(diǎn)型,則變量b也應(yīng)為浮點(diǎn)型。

也可以在不傳遞參數(shù)的情況下調(diào)用函數(shù)。

return 語(yǔ)句

return語(yǔ)句終止函數(shù)的執(zhí)行并將值返回給調(diào)用函數(shù)。返回語(yǔ)句之后,程序控制權(quán)將轉(zhuǎn)移到調(diào)用函數(shù)。

在上面的示例中,result變量的值返回到主函數(shù)。main()函數(shù)中的sum變量被分配了該值。

函數(shù)的返回語(yǔ)句

return語(yǔ)句的語(yǔ)法

return (expression);

例如,

return a;
return (a+b);

從函數(shù)返回的值的類型與函數(shù)原型和函數(shù)定義中指定的返回類型必須匹配。

訪問(wèn)此頁(yè)面以了解有關(guān)傳遞參數(shù)和從函數(shù)返回值的更多信息。

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