函数

作者: qianranow | 来源:发表于2018-04-23 15:06 被阅读32次

    • 概念:一段具有 特定功能 的代码块
    • 声明:在 调用函数 之前,告诉 系统 有这个函数
      1. 可以在函数外声明
      2. 可以在函数内声明
      3. 可以省略形参名称
      
      // 函数外声明
      void callPhone(char number[]);
      int main() {
        // 函数内省略形参名称声明
        int sum(int, int);
        callPhone("110");
        int result =  sum(1, 1);
        printf("%i\n", result);
        return 0;
      }
      void callPhone(char number[]) {
        printf("给 %s 打电话\n", number);
      }
      int sum(int v1, int v2) {
          return v1 + v2;
      }
      
    • 实现:完整地 实现函数功能 的代码
      /*
        格式:返回值类型 函数名称(数据类型 变量名称, ...) {
                函数体;
             }
       */
      int getMax(int v1, int v2) {
        int max = v1 > v2 ? v1 : v2;
        return max;
      }
      
    • 调用
      /*
       函数名称(实参列表)
       */
      void sum(int, int);
      int main() {
        sum(10, 10);
        return 0;
      }
      void sum(int a, int b) {
        printf("%i\n", a + b);
      }
      
    • 形式
      1. 没有参数没有返回值
         void eatApple() {
            printf("吃苹果\n");
         }
      
      2. 没有参数有返回值
         int getMoney() {
            return 100;
         } 
      
      3. 有参数没有返回值
         void eatFood(char food[]) {
            printf("吃%s\n", food);
         }
      
      4. 有参数有返回值
         int getMin(int v1, int v2) {
            int min = v1 < v2 ? v1 : v2;
            return min;
         }
      
    • 作用
      1. 方便代码的重用
      2. 分解任务,简化程序逻辑
      3. 使代码更加模块化
      
    • 注意
      • 一维数组
        void change(int values[]);
        int main() {
            int nums[] = {1, 3, 5};
            // 地址传递
            change(nums);
            printf("%i\n", nums[0]);
            return 0;
        }
        // 如果一维数组作为函数形参,元素个数可以省略
        void change(int values[]) {
            values[0] = 66;
        }
        
      • 二维数组
        void change(int nums[]);
        void changeTwo(int names[][3]);
        int main() {
          int nums[][3] = {
            {1, 3, 5},
            {2, 4, 6}
          };
          // 地址传递
          change(nums[0]);
          printf("%i\n", nums[0][0]);
          // 地址传递
          changeTwo(nums);
          printf("%i\n", nums[0][1]);
          return 0;
        }
        void change(int nums[]) {
          nums[0] = 66;
        }
        // 如果二维数组作为函数形参,一维数组个数可以省略
        void changeTwo(int names[][3]) {
          names[0][1] = 88;
        }
        

    相关文章

      网友评论

          本文标题:函数

          本文链接:https://www.haomeiwen.com/subject/ogxllftx.html