iOS 里const在修饰对象时候的用法
生活随笔
收集整理的這篇文章主要介紹了
iOS 里const在修饰对象时候的用法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
玩iOS的小伙伴對(duì)const應(yīng)該很不陌生, 在聲明全局常量的時(shí)候很多時(shí)候都會(huì)用到,?
但是有時(shí)候修飾對(duì)象很迷惑下面是個(gè)人總結(jié), 下面的地址都是模擬的
?
1.?
const NSString *str1 = @"123"; str1 = @"ads";??
/*-- 對(duì)象地址 -- 對(duì)象 -- 指向的地址 ---- 值 ------ 值地址 --- | 0x123456 str1 0x654321 || 123 ---- 0x654321 | // const 修飾的是 *str, 而*str 是值, 所以const 修飾的就是值123 | str1 0x654221 || ads ---- 0x654221 | // 因?yàn)閏onst 修飾的是值 所以 指針str 還是可變的(可以指向其他值) */?
2.?
NSString const *str2 = @"456"; str2 = @"zxc";?
/*-- 對(duì)象地址 -- 對(duì)象 -- 指向的地址 ---- 值 ------ 值地址 --- | 0x123464 str2 0x654311 || 456 ---- 0x654311 | // 與上面同理 | str2 0x654211 || zxc ---- 0x654211 | */?
3.?
NSString* const str3 = @"789"; str3 = @"qwe"; // 報(bào)錯(cuò)?
/*-- 對(duì)象地址 -- 對(duì)象 -- 指向的地址 ---- 值 ------ 值地址 --- | 0x123478 str3 0x654301 || 789 ---- 0x654301 | // const 修飾的是 str3, 而str3 是指針(指向的是值的地址), | || | 所以const 修飾的就是值789 的地址值 | 0x123478 str3 0x654301 || qwe ---- 0x654201 | // 因?yàn)閏onst 修飾的是指針(指向的是值的地址) | || | 所以 指針str3 是不可變的(不可以指向其他地址) */?
轉(zhuǎn)載于:https://www.cnblogs.com/MrTao/p/8609621.html
總結(jié)
以上是生活随笔為你收集整理的iOS 里const在修饰对象时候的用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 线程其实就是一个个指令组成的,当这个线程
- 下一篇: 使用Runnable配合Thread创建