(未完成)在block内如何修改block外部变量

变量必须用__block修饰,否则编译不通过

block内部会把变量拷贝到堆区  

变量从栈区copy->堆区 通过对对象取地址,打印出对象在内存中的地址 &a

block不允许修改外部变量的值,是指不允许修改外部变量在栈区的指针地址 栈中指针的内存地址

__block是将变量的指针从栈区指向了堆区?

 http://lib.csdn.net/article/cplusplus/26004

https://github.com/ChenYilong/iOSInterviewQuestions/blob/master/01%E3%80%8A%E6%8B%9B%E8%81%98%E4%B8%80%E4%B8%AA%E9%9D%A0%E8%B0%B1%E7%9A%84iOS%E3%80%8B%E9%9D%A2%E8%AF%95%E9%A2%98%E5%8F%82%E8%80%83%E7%AD%94%E6%A1%88/%E3%80%8A%E6%8B%9B%E8%81%98%E4%B8%80%E4%B8%AA%E9%9D%A0%E8%B0%B1%E7%9A%84iOS%E3%80%8B%E9%9D%A2%E8%AF%95%E9%A2%98%E5%8F%82%E8%80%83%E7%AD%94%E6%A1%88%EF%BC%88%E4%B8%8B%EF%BC%89.md#38-%E5%9C%A8block%E5%86%85%E5%A6%82%E4%BD%95%E4%BF%AE%E6%94%B9block%E5%A4%96%E9%83%A8%E5%8F%98%E9%87%8F

 

栈区是危险的,电脑管理, 堆区是安全的,程序员管理

重点:block不允许修改外部变量的值

 

http://www.imlifengfeng.com/blog/?utm_medium=email&utm_source=gank.io&p=457

posted on   土匪7  阅读(175)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示