函数

 
//函数:具有特定功能的代码段
//分类:库函数;自定义函数
//定义:返回值,参数(在main函数外面去定义函数)
//函数的构成  返回值类型 函数名(参数){函数体}
//定义第一种 无参数 无返回值
void sayhello()
{
    printf("别闹! ");
}
//第二种 无参数 有返回值
int studentCount()
{
    return 58;//定义一个有返回值的函数,必须有返回值.return
}

//第三种 有参数 无返回值
void publicfun(int a)
{
    printf("你他妈的是在逗我吗? ");
}

//第四种 有参数 有返回值

int sumOfvlaue(int a,int b)
{
    return a+b;
}
//驼峰命名法 : 定义函数名时使用驼峰命名法(第二个单词开始首字母大写)
int main(int argc, const char * argv[]) {
    @autoreleasepool {
//        sayhello();
//        int s = studentCount();
//        printf("%d ",s);
//        publicfun(3);
//        int sum = sumOfvlaue(6,7);
//        printf("%d ",sum);
//返回值 函数的值  有返回值的函数通过return返回到主调函数
//return 还可以用来结束语句 后面的代码不会在执行编译
//参数:形参 实参
//形参:在函数定义时小括号里面的参数
//实参:在函数在调用的时候传入的参数
//注意:在实际调用中 形参会拷贝实参的内容
//严格的函数包括三个部分:函数的声明(函数原型) 函数的定义 函数的调用
//函数的声明(.h文件,头文件header)
//int sumValue(int a,int b);
////函数的定义(.m文件,)
//int sumValue(int a,int b)
//{ 
//    return a + b;
//}
//数组作为参数  第一个参数是数组 第二个参数是数组元素的个数
int main(int argc, const char * argv[]) {
    //main函数就是在嵌套别的函数
//函数的调用
//    int array[5] = {8,2,7,4,9};
    //数组作为函数的参数,调用时直接数组名和数组元素个数
//    printfArr(array,5);
//函数可以嵌套使用 但不可以嵌套定义
//函数的递归调用 就是自己调用自己
    //注意:一定要有出口
    //变量的作用域
    //一般可以用花括号来区分作用域  在同一个作用域里面变量名是不能重复的.
    //在不同一作用域下面,变量名可以重复
    //局部变量 在花括号里的变量,变量的作用域
    //全局变量:定义在MAIN函数外面,在MAIN函数里面使用
int twoNumberMax(int a,int b)
{
    return a > b ? a : b;
}
int threeNumberMax(int a,int b,int c)
{
    return twoNumberMax(a, b) > c ? twoNumberMax(a, b) :c;
}
int fourNumberMax(int a,int b,int c,int d)
{
    return threeNumberMax(a, b, c) > d ? threeNumberMax(a, b, c) : d;
}
int fiveNumberMax(int a,int b,int c,int d,int e)
{
    return fourNumberMax(a, b, c, d) > e ? fourNumberMax(a, b, c, d) : e;
}
int square(int a)
{
    return a * a;
}
int factorial(int n)
{
    int factor = 1;
    for (int i = 1; i <= square(n); i++) {
        factor *= i;
    }
    return factor;
}
int sum(int a,int b,int c)
{
    return factorial(a)+factorial(b)+factorial(c);
}
原文地址:https://www.cnblogs.com/sharkHZ/p/4984226.html