A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 江小鱼 中级黑马   /  2016-7-15 20:24  /  1737 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

block是什么?
block就是一种数据类型,定义的变量用来存储代码块,
我们可以在任意想执行这段代码的地方,通过block变量名调用这段代码
2>函数的指针
//定义一个指向无参数无返回值的函数的指针
void (*p1)();
void (*P1)();

//定义一个指向有一个int类型参数,返回值是int类型的函数的指针
int (*p2)(int opNum1);
int (*P2)(int opNum1);
//定义一个指向有三个参数,分别是int,char,double,返回值是double的函数的指针
double (*p3)(int opNum1, char opNum2,double opNum3);
double (*p3)(int opNum1,char opNum2,double opNum3);
3>block类型的变量
//定义一个block变量,里面存储一段无参数无返回值的代码
void (^block1)();
void(^block1)();
//定义一个block变量,里面存储一段有一个int类型参数,返回值是int类型的代码
int (^block2)(int opNum1);
int (^blodk2)(int num);
//定义一个block变量,里面存储一段有三个参数,分别是int,char,double,返回值是double的代码
double (^block3)(int opNum1, char opNum2,double opNum3);
double (^block3)(int num1,char num2,double num3);
3、 block访问外部变量的问题
1.block变量内存储的代码块的内部是可以定义变量
2.block变量内存储的代码块,是可以访问外部的变量的
3.block内存储代码块,可以修改全局变量,但是不能修改外部的局部变量
4.block内部的代码块,如果一定要修改外部的局部变量,可以在定义这个变量的时候,用__block修饰
5.为什么block内部的代码块可以修改全局变量,但是不能修改外部的局部变量
因为block是一个代码块,什么时候执行不确定,可能执行的时候要访问的变量都不在了

评分

参与人数 3技术分 +1 黑马币 +16 收起 理由
我是一_OSZs0 + 10 很给力!
堕落天使 + 6 赞一个!
芬芬老师 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
加油加油,顺利考上就业班!
回复 使用道具 举报
66666666666666
回复 使用道具 举报
加油加油!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马