#include <stdio.h>
int max(int a, int b);
void fun0(int a);
/*
返回两个数比较小的数据
*/
int min(int a, int b) {
return a < b ? a : b;
}
/*
参数a赋值为0时直接结束函数
*/
void fun(int a) {
if (a == 0) {
return;
}
printf("a = %d\n", a);
}
int main () {
/*
函数的定义(创建、声明)
原型:
返回值数据类型 函数名(参数类型) {
若干代码
}
函数的调用
原型:
函数名(数据或者变量);
形参:就是参数类型
实参:就是传递给函数的实际数据或者变量
函数返回值
1.return可以将函数的运行结果返回给调用处
2.return可以用于结束函数
此时函数是无返回值的
返回值类型处要写void
函数的声明
原型:
返回值类型 函数名(形参列表);
编写位置和使用情况:
1.要写在头文件下面
2.用到函数声明时
通常都是把函数定义在main的下方
函数的递归调用
函数代码中有一行代码是调用自己
数组作为函数参数
一维数组的情况
创建函数
返回值类型 函数名(数据类型 数组名[]) {
若干代码
}
调用函数
函数名(数组名);
二维数组的情况
创建函数
返回值类型 函数名(数据类型 数组名[][列大小]){
若干代码
}
调用函数
函数名(数组名);
*/
int a = 3, b = 7;
int c = min(a, b);
printf("c = %d\n", c);
fun(0);
c = max(a, b);
printf("c = %d\n", c);
fun0(5);
int arr[] = {0, 3};
fun1(arr, 2);
int arr0[2][2] = {3, 1, 0, 2};
fun2(arr0);
return 0;
}
/*
比较两个数的大小
返回比较大得数据
*/
int max(int a, int b) {
return a > b ? a : b;
}
/*
递归调用
*/
void fun0(int a) {
if (a != 0) {
a--;
printf("a = %d\n", a);
fun0(a);
}
}
/*
打印数组中每一个元素
*/
void fun1(int arr[], int num) {
for(int i = 0; i < num; i++) {
printf("arr[%d] = %d\n", i, arr[i]);
}
}
/*
打印二维数组中每一个元素的值
*/
void fun2(int arr[][2]) {
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
printf("arr[%d][%d] = %d\n", i, j, arr[i][j]);
}
}
}