block和指標函式

2021-06-27 06:33:51 字數 795 閱讀 3381

block**塊和指標函式在定義上只有乙個符號的細微差別,至於靈活性和使用場景,具體問題具體分析,block比較靈活。

#import 

#import "student.h"

int sumab(int a,int b)

void testblock();  

int k=su(10,12);

nslog

(@"block測試值是%i",k);

//指向函式

sump p=sumab;

// int ps=(*p)(12,12);

int ps=p(25,10);

nslog(@"

指標函式值

%i",ps); }

訪問公共變數:

#import 

@protocol

study

;@protocol

learn

;@inte***ce student : nsobject

@property(nonatomic,assign) intno;

@end

student

*stu=[[[

student

alloc]init]autorelease];

//直接訪問公共變數

int age= stu->age;

//呼叫set方法

stu.no=25;

nslog(@"age=%i",age);

總結:點語法都是在呼叫物件的方法,而不是直接訪問成員變數。

Block和函式指標的區別

1.函式指標僅僅是乙個位址,不具備函式原型資訊,沒有型別限制,比如乙個指向變數的指標同樣可以指向乙個函式,但是block作為函式物件,是有部分函式資訊的,型別限制更明確。2.block方式便於實現真正的 函式式 程式設計,讓函式成為基本的運算元,往更遠的方向說,真正的函式式語言可以去掉暫存器 請參考...

typedef定義函式指標和block

typedef就是c語言中的乙個關鍵字,其作用就是給乙個資料型別起乙個別名 typedef作用主要有兩個。1 給型別起乙個比較容易記住的名字 2 簡化較為複雜的型別宣告 import typedef int newint typedef float newfloat int main int arg...

指標函式和函式指標

指標函式和函式指標 一 指標函式 當乙個函式宣告其返回值為乙個指標時,實際上就是返回乙個位址給呼叫函式,以用於需要指標或位址的表示式中。格式 型別說明符 函式名 引數 當然了,由於返回的是乙個位址,所以型別說明符一般都是int。例如 int getdate int aaa int,int 函式返回的...