//函数存在的意义: 把main函数中复杂的逻辑进行拆分, 有一个一个单独的函数来处理一个单独的模块, main函数只起到宏观调控的作用
//函数定义: 包含四个部分
//1 返回值类型(要返回的数据的类型)
//2 函数名(给函数起一个名字)
//3 参数列表(用来接收传入的数据)
//4 函数体(函数真正的功能, 实际做的操作)
//函数定义的第一种格式(无参数, 无返回值)
//函数名命名规范, 有单词组成, 除了第一个单词外, 其余的单词的首字母大写
//工程名命名规范, 有单词组成, 并且每个单词的首字母都要大写
//变量名命名规范, 有单词组成, 除了第一个单词外, 其余的单词的首字母大写
//函数定义的第一种格式: (无返回值, 无参数)
//函数与函数之间可以嵌套调用, 但是不可以嵌套定义
void buyMilk() {
//函数体
printf("买个毛啊, 都没有给我钱\n");
}
//函数定义的第二种格式: (无返回值, 有参数)
void buyMilkVersionTwo(float money) {
printf("哈哈, 我给你买了, 不过我自己喝了\n");
}
//函数定义的第三种格式: (有返回值, 无参数)
int giveMoney();//函数声明
int giveMoney() {
printf("下一年好好干啊!");//一定要将函数执行的语句放在return的前面, return后面的语句是不执行的
return 1;//return用于返回值, 将返回的数据放在return之后即可, 谁调用该函数就将值返回给谁
}
//函数定义的第四种格式: (有返回值, 有参数)
//求两个整数的最大值
int maxValueOfTwo(int x, int y) {
return x > y ? x : y;
}
int minValueOfTwo(int x, int y) {
return x < y ? x : y;
}
int maxValueOfThree(int x, int y, int z) {
// return (x > y ? x : y) > z ? (x > y ? x : y) : z;
//1 先求x y的最大值
// int max = 0;
// max = maxValueOfTwo(x, y);
// max = maxValueOfTwo(max, z);
// return max;
return maxValueOfTwo(maxValueOfTwo(x, y), z);
}
//Control reaches end of non-void function 没有到达一个返回值不为空的函数的结尾
//原因 非空函数需要返回值, 识别到return之后以为着函数功能的结束
//解决方案 返回最终的数据即可(return操作)
//Function definition is not allowded here
//这里不允许函数定义
//原因, 函数与函数之间存在嵌套定义, (也就是在一个函数体中又定义了另一个函数)
//解决方案 就把内部函数的定义提到函数外部, 让函数与函数之间形成并列关系
void print();
void print() {
printf("I Love iOS\n");
}
//函数声明 和函数定义相比, 只是缺少了函数体, 最后加分号
int maxValueOfFour(int x, int y, int z, int a);
void sayHi();
int main(int argc, const char * argv[])
{
//函数调用
//函数的使用 有三部分: 1 函数的声明 2 函数的定义 3 函数的调用
buyMilk();//通过函数名 + 层数列数列表(实参)
buyMilkVersionTwo(0.1);
print();
int money = giveMoney();
printf("money = %d\n", money);
// int maxTwo = maxValueOfTwo(10, 20);
printf("maxTwo = %d\n", maxValueOfTwo(10, 20));
int minTwo = minValueOfTwo(10, 20);
printf("minTwo = %d\n", minTwo);
int maxThree = maxValueOfThree(10, 20, 40);
printf("maxThree = %d\n", maxThree);
printf("maxFour = %d\n", maxValueOfFour(10, 20, 40, 50));
//实参 实际参数, 真实的具体的参数, 也就是函数在调用的时候给定的参数叫做实参
//形参 形式参数, 是用来表示家接受什么类型的数据, 具体的存储数据未知, 也就是函数定义时给定的参数叫做形参
//函数调用时 实参到形参的传递是一个拷贝的过程
sayHi();
return 0;
}
int maxValueOfFour(int x, int y, int z, int a) {
return maxValueOfTwo(maxValueOfThree(x, y, z), a) ;
}
本文详细介绍了函数的四种定义方式及其应用场景,包括无参数无返回值、无返回值有参数、有返回值无参数及有返回值有参数的函数,并解释了函数存在的意义和调用过程。
5590

被折叠的 条评论
为什么被折叠?



