//
// main.m
// C05 函数-3
//
// Created by xalo on 15/10/13.
// Copyright (c) 2015年 Darling.com. All rights reserved.
//
#import <Foundation/Foundation.h>
int s = 77;// 全局变量
#pragma mark 函数的嵌套调用
/*
函数可以嵌套调用。
函数的嵌套调用:在一个函数中,调用另一个函数完成某项功能。(函数可以嵌套调用,但不允许嵌套定义!!!)
*/
#pragma mark 函数的递归调用
// 函数递归时,一定要有出口,否则会造成递归环路(死递归),那么程序一定会崩溃。
// 递归调用:自己调用自己完成某个功能
// 使用递归的方式实现5!
// *定义*
// 定义一个函数,求两个数的最大数
int maxOfTow(int a, int b); // 声明在main函数之前,函数的声明可以省略
int maxOfTow(int a, int b) // 定义
{
int max = a > b ? a : b;
return max;
}
// 定义一个函数,求三个数的最大数
int maxOfThree(int a, int b, int c);
int maxOfThree(int a, int b, int c)
{
// int max = a > b ? a : b;
int max = maxOfTow(a, b); // 这就是 函数的嵌套!!!
max = max > c ? max : c;
return max;
}
// 定义一个函数,求四个数的最大数
int maxOfFour(int a, int b, int c, int d);
int maxOfFour(int a, int b, int c, int d)
{
// int max = a > b ? a : b; // 先求出前两个数的最大值
// max = max > c ? max : c; // 将前两个数的最大数和第三个数比较,找到最大数
int max = maxOfThree(a, b, c); // 这就是 函数的嵌套!!!
max = max > d ? max : d; // 将前三个数的最大数和第四个数比较,找到最大数
return max;
}
int main(int argc, const char * argv[]) {
//*调用*
// 调用 求两个数的最大数 函数
int x = maxOfTow(8, 12);
printf("%d\n", x);
// 调用 求三个数的最大数 函数
int y = maxOfThree(12, 8, 22);
printf("%d\n", y);
// 调用 求四个数的最大数 函数
// int z = maxOfFour(45, 54, 32, 23);
// printf("%d\n", z);
printf("%d\n", maxOfFour(45, 54, 32, 23)); // 精简
#pragma mark 变量的作用域
// 局部变量:只在当前作用域中起效
// 全局变量:不属于任何一个作用于的变量就是全局变量,全局变量可以在当前文件中任何一个地方被访问到(从创建的位置开始,一直到文件结束)
// 如何确定作用域? 是hi用{}来确定作用域,一对大括号,就确定了一个作用域。
int a = 12;
for (int i = 0; i < 1 ; i++) {
int b = 23;
printf("b = %d\n",b);
}
printf("a = %d\n",a);
printf("s = %d\n",s);
return 0;
}