Home  >  Article  >  Backend Development  >  What is the usage of return in C language?

What is the usage of return in C language?

coldplay.xixi
coldplay.xixiOriginal
2020-06-09 17:06:5710845browse

What is the usage of return in C language?

#What is the usage of return in C language?

The usage of return in C language is as follows:

The return value of a function refers to the result obtained by executing the code in the function body after the function is called. This result is returned via the return statement. The general form of the

return statement is:

return 表达式;

or:

return (表达式);

It is correct with or without ( ). For the sake of simplicity, ( ) is generally not written. For example:

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

Explanation of the C language return value:

1) A function without a return value is of empty type and is represented by void. For example:

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

Once the return value type of a function is defined as void, its value can no longer be received. For example, the following statement is wrong:

int a = func();

In order to make the program more readable and reduce errors, all functions that do not require a return value should be defined as void type.

2) There can be multiple return statements, which can appear anywhere in the function body, but only one return statement can be executed each time a function is called, so there is only one return value (a few programming languages ​​support multiple return value, such as Go language). For example:

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

If a>b is true, return a will be executed, and return b will not be executed; if it is not true, return b will be executed, and return a will not be executed.

3) Once the function encounters the return statement, it will return immediately, and all subsequent statements will not be executed. From this perspective, the return statement also has the function of forcibly ending function execution. For example:

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

The 4th line of code is redundant and will never have a chance to be executed.

Below we define a function to determine prime numbers. This example is more practical:

#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() is a function used to find prime numbers. A prime number is a natural number, and its value is greater than or equal to zero. Once the value passed to prime() is less than zero, it is meaningless, and it cannot be judged whether it is a prime number. Therefore, once the value of the parameter n is detected to be less than 0, use the return statement to end early. function.

The return statement is the only way to end the function early. Return can be followed by a piece of data, indicating that the data is returned outside the function; return can also be followed by no data, indicating that nothing is returned and is only used to end the function.

Change the above code so that return is not followed by any data:

#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;
}

The return value of prime() is void, and return cannot be followed by any data, just write a semicolon.

Recommended tutorial: "C Video Tutorial"

The above is the detailed content of What is the usage of return in C language?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn