c語言中return的用法是什麼?

烟雨青岚
發布: 2020-07-03 11:10:45
原創
5188 人瀏覽過

「return」是用來傳回函數被呼叫之後,執行函數體內的程式碼所得到的結果的。 「return」語句的一般形式為:「return 表達式;」;「return」語句可以有多個,但每次呼叫函數只能有一個「return」語句被執行,也就是只有一個回傳值。

c語言中return的用法是什麼?

函數的回傳值是指函數被呼叫之後,執行函數體內的程式碼所得到的結果,這個結果透過 return 語句傳回。

return 語句的一般形式為:return 表達式;

#或:return (表達式);

有沒有( )都是正確的,為了簡明,一般也不寫( )。例如:

return max;
return a+b;
return (100+200);
登入後複製

對C語言傳回值的說明:

1) 沒有回傳值的函數為空型,用void表示。例如:

void func(){printf("http://c.biancheng.net\n");}
登入後複製

一旦函數的回傳值型別被定義為 void,就不能再接收它的值了。

例如,下面的語句是錯誤的:int a = func();

為了使程式有良好的可讀性並減少出錯, 凡不要求返回值的函數都應定義為void 類型。

2) return 語句可以有多個,可以出現在函數體的任意位置,但是每次呼叫函數只能有一個return 語句被執行,所以只有一個回傳值(少數的程式語言支援多個返回值,例如Go語言)。例如:

//返回两个整数中较大的一个
int max(int a, int b){
    if(a > b){
        return a;
    }else{
        return b;
    }
}
登入後複製

如果a>b成立,就執行return a,return b不會執行;如果不成立,就執行return b,return a不會執行。

3) 函數一旦遇到 return 語句就立即傳回,後面的所有語句都不會被執行到了。從這個角度來看,return 語句還有強制結束函數執行的功能。例如:

//返回两个整数中较大的一个
int max(int a, int b){
    return (a>b) ? a : b;
    printf("Function is performed\n");
}
登入後複製

下面我們定義了一個判斷質數的函數,這個例子比較實用:

#include <stdio.h>
int prime(int n){
    int is_prime = 1, i;
    //n一旦小于0就不符合条件,就没必要执行后面的代码了,所以提前结束函数
    if(n < 0){ return -1; }
    for(i=2; i<n; i++){
        if(n % i == 0){
            is_prime = 0;
            break;
        }
    }
    return is_prime;
}
int main(){
    int num, is_prime;
    scanf("%d", &num);
    is_prime = prime(num);
    if(is_prime < 0){
        printf("%d is a illegal number.\n", num);
    }else if(is_prime > 0){
        printf("%d is a prime number.\n", num);
    }else{
        printf("%d is not a prime number.\n", num);
    }
    return 0;
}
登入後複製

prime() 是用來求質數的函數。質數是自然數,它的值大於等於零,一旦傳遞給prime() 的值小於零就沒有意義了,就無法判斷是否是素數了,所以一旦檢測到參數n 的值小於0,就使用return 語句提前結束函數。

return 語句是提前結束函數的唯一方法。 return 後面可以跟著一份數據,表示將這份數據回傳到函數外面;return 後面也可以不跟任何數據,表示什麼也不返回,只用來結束函數。

更改上面的程式碼,使得return 後面不跟任何資料:#include

void prime(int n){
    int is_prime = 1, i;
    if(n < 0){
        printf("%d is a illegal number.\n", n);
        return;  //return后面不带任何数据
    }
    for(i=2; i<n; i++){
        if(n % i == 0){
            is_prime = 0;
            break;
        }
    }
    if(is_prime > 0){
        printf("%d is a prime number.\n", n);
    }else{
        printf("%d is not a prime number.\n", n);
    }
}
int main(){
    int num;
    scanf("%d", &num);
    prime(num);
    return 0;
}
登入後複製

prime() 的回傳值是void,return 後面不能帶任何數據,直接寫分號即可。

推薦教學:《C語言

以上是c語言中return的用法是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!