函数

本文详细介绍了函数的四种定义方式及其应用场景,包括无参数无返回值、无返回值有参数、有返回值无参数及有返回值有参数的函数,并解释了函数存在的意义和调用过程。

//函数存在的意义: 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) ;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值