函式的祕密之 函式返回值

伍悅匿匿發表於2020-12-13

C 語言自學之 函式返回值

#include <stdlib.h>

/* Jone算出結果應該怎麼寫函式? */
 int joneResult(int x, int y, int z)
{
   int sum = x+y+z;
   return sum/3;          //這裡是不是應該將sum返回呢?
}
/* Jack沒有算出結果只說了一句話是不是應該用無返回值函式? */
 void jackResult(int x, int y, int z)
{
    printf("我算不出來\n");
}
int main()
{
    int a, b, c;
    a = 10;
    b = 20;
    c = 30;
    //Jone的返回值型別是什麼?
    int jR = joneResult(a, b, c);
    printf("Jone運算結果是:%d\n", jR);
    printf("Jack運算結果是:");
    //Jack沒有算出結果只說了句話,是不是直接呼叫函式就可以了?
    jackResult(a,b,c);
    return 0;
}

那麼函式的返回值是指函式被呼叫之後,執行函式體中的程式段所取得的並返回給主調函式的值。
    函式的返回值要注意以下幾點:
    1. 函式的值只能通過return語句返回主調函式。
    return語句的一般形式為:
        return 表示式   或者為:  return (表示式);
    2. 函式值的型別和函式定義中函式的型別應保持一致。如果兩者不一致,則以函式返回型別為準,自動進行型別轉換。
    就如小剛說選A,那麼就返回一個字元型資料,用程式碼表示就是:

char option()
        {
            return 'A';
        }


    小剛說值為100,那麼就返回一個整型資料,用程式碼表示就是:

int number()
        {
            return 100;
        }


    3. 沒有返回值的函式,返回型別為void。如果小剛算了一會沒有返回結果的話,那麼用程式碼表示就是:

 void noResult()
        {

        }


    注意:void函式中可以有執行程式碼塊,但是不能有返回值,另void函式中如果有return語句,該語句只能起到結束函式執行的功能。其格式為:return;
 

相關文章