zoukankan      html  css  js  c++  java
  • 学点 C 语言(32): 函数 返回值


    C 语言的函数可以返回数组以外(不包括数组指针)的任何类型.

    不写明返回类型, 在以前的 C 语言版本中是默认返回 int, 现在 C99、C++ 已不支持.

    void 表示没有返回值, 也就无须 return 语句; 如果是其他语句必须有 return 语句.

    在 main 函数中(只是 main 函数)若忘掉 return, 有些编译器会自动添加 return 0;

    1. 每执行 return 语句函数将会退出:
    #include <stdio.h>
    
    int main(void)
    {
        printf("111\n"); 
        printf("222\n");
    
        return 0; /* 之后的语句将不会执行 */
    
        printf("333\n");
        printf("444\n");
        
        getchar();
        return 0;
    }
    

    2. 如果函数没有返回值, 可以借无参数的 return 跳出:
    #include <stdio.h>
    
    void prn(void);
    
    int main(void)
    {
        prn();
        getchar();
        return 0;
    }
    
    void prn(void) {
        printf("111\n"); 
        printf("222\n");
    
        return; /* 无参数的 return */
    
        printf("333\n");
        printf("444\n");
    }
    

    3. return 后面不是"等号", 但返回值也可以写在括号中:
    #include <stdio.h>
    
    long long MySqr(int x);
    
    int main(void)
    {
        int i = 9;
    
        i = MySqr(i);
        printf("%d\n", i);
        
        getchar();
        return 0;
    }
    
    long long MySqr(int x) {
        return(x*x); /* 返回值在括号中 */
    }
    

    4. return 与 exit 的区别:

    main 函数结束时, 程序也就结束了, return 0; 或 return(0); 返回给系统的 0 表示正常退出.
    如果返回了非零的值, 一般写做: return 1; 或 return(1); 表示异常结束.

    在一般函数中 return 只是退出当前函数;
    但在任何地方, exit(1); 都是退出程序, 其中的 1 也是给系统的返回值, 表示异常退出;
    异常退出也可以使用 abort(); 这个两个函数(exit、abort)都声明在 stdlib.h
    #include <stdio.h>
    #include <stdlib.h>
    
    void prn(void);
    
    int main(void)
    {
        prn();
        getchar();
        return 0;
    }
    
    void prn(void) {
        printf("abc\n"); 
        exit(1);         /* 异常退出程序 */
    }
    

    5. 每执行 return 语句函数将会退出:
    #include <stdio.h>
    
    int main(void)
    {
        printf("111\n"); 
        printf("222\n");
    
        return 0; /* 之后的语句将不会执行 */
    
        printf("333\n");
        printf("444\n");
        
        getchar();
        return 0;
    }
    

    6. 注意返回值的类型:
    #include <stdio.h>
    
    float average(int a, int b, int c);
    
    int main(void)
    {
        printf("%g\n", average(2,6,9));
        
        getchar();
        return 0;
    }
    
    float average(int a, int b, int c) 
    {
        return (a + b + c)/3.0; /* 假如这里没有 .0 将不会返回正确的结果*/
    }
    

  • 相关阅读:
    前端面试1
    关于JavaScript学习,推荐博客及书籍
    GET 和 POST 两种方式来完成Http接口
    mvc Web api 如何在控制器中调用
    c#怎么获取当前页面的url
    MVC3缓存:使用页面缓存
    十大排序算法梳理
    浅谈设计模式——工厂模式
    Java 中的 反射机制
    浅谈设计模式——单例模式
  • 原文地址:https://www.cnblogs.com/del/p/1345545.html
Copyright © 2011-2022 走看看