use*_*590 3 iphone int block ios
在最近的一次采访中,我被要求预测代码段的输出.即使我做对了,我也无法解释如何得到它.这是代码段.
int num =2; int (^ myblock)(void)=^{ return num*5; }; NSLog(@"my block call 1 %d",myblock()); num = 5; NSLog(@"my block call 2 %d",myblock());
任何人都可以解释为什么答案都是10次.谢谢
Val*_*adu 5
如果未使用__block标记,则num变量将在块中复制.这意味着外部作用域num和内部num实际上保存在内存中的不同地址,而更改一个不会影响另一个.要强制编译器使用相同的地址,请使用__block标记变量
归档时间:
10 年,1 月 前
查看次数:
55 次
最近记录: