作用域说的是不是不对,内部的变量是重新定义的,而不是覆盖外部的变量?
int a = 1;
@autoreleasepool {
float a = 1;
NSLog(@"%f",a);
}
16
收起
正在回答 回答被采纳积分+1
3回答
imoocLovers
2018-06-20 14:55:55
①当我们在函数中或者代码块中定义的变量跟外部变量一样时,那么在函数或代码块中的变量是会将外部的变量给覆盖掉,只能使用函数中变量的值。
②在你的代码中,@autoreleasepool 中定义了一个float a = 1;虽然变量名也是a,因为作用域不同,所以在@autoreleasepool 中使用的是float a = 1;这个a的值。在这里实际上定义的是两个不同类型的变量。
③而在老师讲解的作用域中,是在@autoreleasepool大括号中又定义了一个int a ,与外部的变量是一样的,这个时候在内部使用的a的值将会覆盖掉外部的a的值。
iOS入门:基础语法与常用控件
- 参与学习 1337 人
- 提交作业 712 份
- 解答问题 1878 个
很多人都在疑问没有基础该怎么学习iOS开发?不用担心,本路径采用游戏关卡式的教学模式,并且以经典OC与最新Swift双重结合的教学内容,帮助大家快速掌握两种iOS开发语言基础,去掉“零”标签。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星