2019独角兽企业重金招聘Python工程师标准>>>

一.如果只使用全局或静态变量或不使用外部变量, 那么Block块的代码会存储在全局区;
二.如果使用了外部变量, 在ARC中, Block块的代码会存储在堆区;
                                    在MRC中, Block快的代码会存储在栈区;
三.block默认情况下不能修改外部变量, 只能读取外部变量:
                                 在ARC中, 外部变量存在堆中, 这个变量在Block块内与在Block块外地址相同;
                                                外部变量存在栈中, 这个变量会被copy到为Block代码块所分配的堆中;
                                 在MRC中, 外部变量存在堆中, 这个变量在Block块内与Block块外相同;
                                                 外部变量存在栈中, 这个变量会被copy到为Block代码块所分配的栈中;
四.如果需要修改外部变量, 需要在外部变量前面声明 __block
                                 在ARC中, 外部变量存在堆中, 这个变量在Block块内与Block块外地址相同;
                                                外部变量存在栈中, 这个变量会被转移到堆区, 不是复制, 是转移.
                                 在MRC中, 外部变量存在堆中, 这个变量在Block块内与Block块外地址相同;
                                               外部变量存在栈中, 这个变量在Block块内与Block块外地址相同;

转载于:https://my.oschina.net/zhangjie9142/blog/501419

Block 在不同情况下的变量存储区域相关推荐

  1. C/C++变量存储区域

    1.局部变量. 存放在栈中. 会在进入函数/块的时候进行分配空间, 在退出函数/块的时候释放该空间. 2.全局变量 和 静态变量. 存储在静态存储区域, 即存放在可执行文件的数据段中.data. 3. ...

  2. Arcgis 只有边界线的情况下如何截取目标区域(掩膜裁剪)

    首先要明确文件类型,shp文件是矢量文件,raster是指栅格 第一步: file/ add data 将文件都读取进来 如上图所示,我读取了澳大利亚的蒸散发卫星图像以及其西南某一流域边界线的shp文 ...

  3. 动态内存分配及变量存储类别(第二部分)

    5. C语言变量的存储类别和生存期 我们知道,变量是有数据类型的,用以说明它占用多大的内存空间,可以进行什么样的操作. 除了数据类型,变量还有一个属性,称为"存储类别".存储类别就 ...

  4. C语言中变量存储类别——自动变量,寄存器变量,静态外部链接;

    c提供了多种不同模型或存储类别在内存中存储数据. 作用域: 作用域描述程序中可访问标识符的区域. 作用域描述了程序中可以访问一个标识符的一个或多个区域.即变量的可见性. 一个变量的作用域可以是代码块作 ...

  5. ssis什么情况下用到变量_了解SSIS内存使用情况

    ssis什么情况下用到变量 In this article, I am going to explain in detail about SSIS memory usage and how can w ...

  6. java 定义变量时 赋值与不赋值_探究Java中基本类型和部分包装类在声明变量时不赋值的情况下java给他们的默认赋值...

    探究Java中基本类型和部分包装类在声明变量时不赋值的情况下java给他们的默认赋值 当基本数据类型作为普通变量(八大基本类型: byte,char,boolean,short,int,long,fl ...

  7. 在不借助第三方变量情况下实现两个变量的交换(借助于异或运算)

    下面首先来看一个问题. 假设存在两个int型变量a和b,那么如何实现两个变量值的交换呢. 通常我们的做法,也是最容易想到的做法就是通过定义一个第三方变量,然后借助于该变量来实现变量值的交换. 方法一( ...

  8. 及其他公共信息网络的计算机上存储,不得在未采取防护措施的情况下将互联网及其他公共信息网络上的数据复制到涉密计算机及网络,确...

    相关题目与解析 不得在未采取防护措施的情况下将互联网及其他公共信息网络上的数据复制到涉密计算机及网络,确 下列哪些操作行为属违规行为(). 将涉密计算机.涉密存储设备接入互联网及其他公共信息网络的,是 ...

  9. 【C++】什么情况下会产生临时变量

    临时变量是只在调用期间有效,具有常性的一种变量. 一.值传递 在返回值以值传递(传值和传指针)的形式返回时,会生成临时变量. int sum(int a,int b) {return a + b; } ...

最新文章

  1. MATLAB【七】———— matlab 高斯核使用,超像素图像模拟,矩阵转图像,深度相机模型实践实现
  2. 《网页设计创意书》读后感
  3. 常用的数据结构-链表
  4. 简单的图像去噪的实现和验证码识别
  5. Lex-BERT:超越FLAT的中文NER模型?
  6. 音频处理四:(音频的分帧)
  7. 【收藏】win10将wsl升级到wsl2
  8. junit与testng 分别和mockito 结合使用例子
  9. python中函数startswith的用法_Python中用startswith()函数判断字符串开头的教程
  10. hana数据库 字段长度_SAP HANA: 列式内存数据库评测
  11. win7 做服务器开网站,win7下创建Web服务器
  12. Zcash下一次NU5升级——基于Halo 2
  13. Android蓝牙音量调节,安卓 蓝牙音量控制 Bluetooth Volume Control v2.40 付费高级特别版...
  14. 手机定位--GPS定位,基站定位,辅助定位
  15. Android中多个style,Android设计规范 Material Design-Style(4图像)
  16. 面阵相机靶面详解and镜头选择andFA镜头视野计算
  17. 基于互联网+居民健康管理平台技术方案
  18. 浙师大OJ2494走楼梯问题
  19. 安卓逆向学习资料推荐
  20. STM32的复位电路、ISP一键下载原理

热门文章

  1. js 生成二维码_Node for Max 二维码生成器
  2. sublime java 编译_03 sublime text3下配置Java的编译运行环境
  3. CentOS7安装Nginx,全网最快安装教程
  4. Excel宏的自动运行设置
  5. nagios监控mysql服务_nagios监控mysql服务
  6. 计算机硬件技术基础 统计字符串strl中字符'a'的个数,汕头大学工学院830计算机基础综合历年考研真题202p.doc...
  7. 1.详细说明微型计算机的组成,第1章微型计算机系统导论.ppt
  8. java的class文件魔数和版本对应关系
  9. 计算机内存不足吃鸡怎么办,Win10玩吃鸡游戏提示虚拟内存不足怎么办?
  10. JavaSE----属性、方法