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 函式返回的...