- 概念:一段具有
特定功能
的代码块 - 声明:在
调用函数
之前
,告诉系统
有这个函数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; }
- 一维数组
网友评论