Maison  >  Article  >  développement back-end  >  A quoi sert le return en langage C ?

A quoi sert le return en langage C ?

coldplay.xixi
coldplay.xixioriginal
2020-06-09 17:06:5710774parcourir

A quoi sert le return en langage C ?

À quoi sert le retour en langage C ?

L'utilisation de return en langage C est la suivante :

La valeur de retour d'une fonction fait référence au résultat obtenu en exécutant le code dans la fonction body après l'appel de la fonction. Ce résultat est renvoyé via l'instruction return. La forme générale de la

déclaration de retour est :

return 表达式;

ou :

return (表达式);

Les deux sont corrects avec ou sans ( ) par souci de simplicité, ( ) est généralement. pas écrit. Par exemple :

return max;
return a+b;
return (100+200);

Explication de la valeur de retour du langage C :

1) Une fonction sans valeur de retour est de type vide, représentée par void. Par exemple :

void func(){
    printf("http://c.biancheng.net\n");
}

Une fois que le type de valeur de retour d'une fonction est défini comme void, elle ne peut plus recevoir sa valeur. Par exemple, l'instruction suivante est fausse :

int a = func();

Afin de rendre le programme lisible et de réduire les erreurs, toutes les fonctions qui ne nécessitent pas de valeur de retour doivent être définies comme de type void.

2) Il peut y avoir plusieurs instructions return, qui peuvent apparaître n'importe où dans le corps de la fonction, mais une seule instruction return peut être exécutée à chaque fois qu'une fonction est appelée, il n'y a donc qu'une seule valeur de retour (quelques programmation les langues prennent en charge plusieurs valeurs de retour, telles que la langue Go). Par exemple :

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

Si a>b est vrai, return a sera exécuté, et return b ne sera pas exécuté s'il n'est pas vrai, return b sera exécuté et return a ne sera pas exécuté ; .

3) Une fois que la fonction rencontre l'instruction return, elle reviendra immédiatement et toutes les instructions suivantes ne seront pas exécutées. De ce point de vue, l'instruction return a également pour fonction de mettre fin de force à l'exécution de la fonction. Par exemple :

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

La 4ème ligne de code est redondante et n'aura jamais la chance d'être exécutée.

Ci-dessous nous définissons une fonction pour déterminer les nombres premiers. Cet exemple est plus pratique :

#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() est une fonction utilisée pour trouver des nombres premiers. Un nombre premier est un nombre naturel et sa valeur est supérieure ou égale à zéro. Une fois que la valeur transmise à prime() est inférieure à zéro, cela n'a plus de sens et on ne peut pas déterminer s'il s'agit d'un nombre premier. une fois que la valeur du paramètre n est détectée comme étant inférieure à 0, utilisez l'instruction return pour terminer plus tôt la fonction. L'instruction

return est le seul moyen de mettre fin à une fonction plus tôt. Return peut être suivi d'une donnée, indiquant que les données sont renvoyées en dehors de la fonction ; return peut également être suivi d'aucune donnée, indiquant que rien n'est renvoyé et n'est utilisé que pour terminer la fonction.

Modifiez le code ci-dessus pour que return ne soit suivi d'aucune donnée :

#include <stdio.h>
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;
}

La valeur de retour de prime() est nulle, et return ne peut être suivi d'aucune donnée, écrivez simplement un point-virgule directement.

Tutoriel recommandé : "Tutoriel vidéo C"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn