//函数调用

        sayHi();

        

        //函数指针

        void (*p_sayHi)() = NULL; //定义了一个数据类型为 void (*)()变量名为p_sayHi,初值为NULL的一个指针变量

        //函数名 代表函数地址

        p_sayHi = sayHi; //将函数的地址赋值给 p_sayHi,那么p_sayHi就指向了函数 sayHi,就可以当做函数名来使用

        //使用函数指针调用函数

        p_sayHi();

        

        //函数调用

        int sum = sumValue(10, 20);

        NSLog(@"%d",sum);

        

        //函数指针

        int (*p_sum)(int , int ) = sumValue;

        NSLog(@"%d",p_sum(20,1));

        

        //函数指针int maxValue(int a,int b);

        int (*p_max)(int ,int ) = maxValue;  //定义了一个数据类型为 int (*)(int ,int) 变量名为p_max 初值为maxValue的指针变量, p_max就可以当做函数名使用

        int result = p_max(10,2);

        NSLog(@"%d",result);

        

        //匿名函数 : 没有名字的函数

        //block 语法块

        //block 变量: 存放block语法块

        //定义了一个数据类型为void (^)() 变量名为sayBlock,初值为^ void (){NSLog(@"没有名字的函数");}

        //block语法块 其实就是一个匿名函数,但是他和其他函数不一样 可以嵌套定义 , 如果想使用block语法块就需要用对应数据类型的block变量去接收 使用变量进行调用

        void (^sayBlock)() = ^ void(){

            NSLog(@"没有名字的函数");

        };

        

        //使用block变量

        sayBlock();

        

        //求两个数之和

        int (^sumBlock)(int ,int) = ^ int (int a,int b){

            return a + b;

        };

        //使用

        sum = sumBlock(1,1);

        NSLog(@"%d",sum);

        

        //写一个 返回值为整型 参数为OC字符串(仅一个参数) 的block,实现将字符串转换为整型的功能

        //block回调

        

        int (^ changeBlock)(NSString *) =  ^ int (NSString *str)

        {

            return [str intValue];

        };

        

        int result1 = changeBlock(@"3432");

        NSLog(@"%d",result1);

        

        block 和 变量

        局部变量

        __block 修饰局部变量,告诉block在内部将变量识别为可变的量

        __block int a = 10;

        

        void (^testBlock)() = ^ void (){

            a ++; //在block内部 将局部变量识别为不可变的量

            b ++; //在block内部 将全局变量识别为可变的量

   

            NSLog(@"%d",a);

        };

        

        TESTBLOCK sayBlock = ^ void (){

            NSLog(@"可以么");

        };

 

posted on 2015-05-25 09:45  hanry  阅读(141)  评论(0)    收藏  举报