@autoreleasepool{ int m = 10; NSLog(@"1:m = %d",m); NSLog(@"2:m addr = %p"); //栈区
//定义变量,并且赋值 //当定义block的时候,block会吧外部变量的值赋值一份 //存放到block的内存中 void (^myBlock)()=^{ NSLog(@"5:m addr = %p",m); //堆区 NSLog(@"3Lin block m = %d"); }
NSLog(@"4:m addr =%p",&m); //栈区 //调用 myBlock(); }
注意:block中的外部变量不可以修改,如果想修改,需要在外部定义的时候前边加上 __block
|