【iOS 入门】block (1)
学习block之前 先复习C语言函数指针。
定义:
函数返回值类型 (* 指针变量名) (函数参数列表);
例如:
int(*p)(int, int);
解释:
这个语句就定义了一个指向函数的指针变量 p。首先它是一个指针变量,所以要有一个“*”,即(*p);其次前面的 int 表示这个指针变量可以指向返回值类型为 int 型的函数;后面括号中的两个 int 表示这个指针变量可以指向有两个参数且都是 int 型的函数。所以合起来这个语句的意思就是:定义了一个指针变量 p,该指针变量可以指向返回值类型为 int 型,且有两个整型参数的函数。p 的类型为 int(*)(int,int)。
下篇是特别好的教程
http://c.biancheng.net/view/228.html
测试代码
#import <Foundation/Foundation.h> NS_ASSUME_NONNULL_BEGIN @interface TestBlock : NSObject -(void)test; @end NS_ASSUME_NONNULL_END
#import "TestBlock.h" @implementation TestBlock
//声明了一个c语言方法 oc兼容c语言语法。 int max(int a,int b );
//实现test方法 -(void)test{
//声明一个函数指针变量。叫*bigger; 指向有两个参数的(int a ,int b )方法 。方法返回值为int型 。 int (* bigger)(int a ,int b ) ;
//指针赋值 bigger = max ;
//使用指针 bigger int c =( *bigger)(1,2); NSLog(@"指针函数调用结果:%d",c); }
//实现已声明的方法。 int max(int a ,int b ){ return a>b ? a : b ; } @end
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)