iOS 里const在修饰对象时候的用法

玩iOS的小伙伴对const应该很不陌生, 在声明全局常量的时候很多时候都会用到, 

但是有时候修饰对象很迷惑下面是个人总结, 下面的地址都是模拟

 

1. 

const NSString *str1 = @"123";
str1 = @"ads";

  

/*-- 对象地址 -- 对象 -- 指向的地址 ---- 值 ------ 值地址 ---
|   0x123456  str1    0x654321  || 123 ----   0x654321 | // const 修饰的是 *str, 而*str 是值, 所以const 修饰的就是值123
|             str1    0x654221  || ads ----   0x654221 | // 因为const 修饰的是值 所以 指针str 还是可变的(可以指向其他值)
*/

 

2. 

NSString const *str2 = @"456";
str2 = @"zxc";

 

/*-- 对象地址 -- 对象 -- 指向的地址 ---- 值 ------ 值地址 ---
|   0x123464  str2    0x654311  || 456 ----   0x654311 | // 与上面同理
|             str2    0x654211  || zxc ----   0x654211 |
*/

 

3. 

NSString* const str3 = @"789";
str3 = @"qwe"; // 报错

 

/*-- 对象地址 -- 对象 -- 指向的地址 ---- 值 ------ 值地址 ---
|   0x123478  str3    0x654301  || 789 ----   0x654301 | // const 修饰的是 str3, 而str3 是指针(指向的是值的地址),
|                               ||                     |    所以const 修饰的就是值789 的地址值
|   0x123478  str3    0x654301  || qwe ----   0x654201 | // 因为const 修饰的是指针(指向的是值的地址)
|                               ||                     |    所以 指针str3 是不可变的(不可以指向其他地址)
*/

 

转载于:https://www.cnblogs.com/MrTao/p/8609621.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/414496.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uni-app第三方登陆-微信

uni-app第三方登陆-微信 结合上文全局登陆校验&#xff0c;实现微信授权登录官方手册地址&#xff1a; https://uniapp.dcloud.io/api/plugins/login?idgetuserinfo 一、书写两个界面 login.vue 用于用户登陆my.vue 我的界面&#xff0c;存放校验登陆的函数1.1 my.vue <sc…

Android获取屏幕尺寸,屏幕适配

获取屏幕尺寸&#xff1a; DisplayMetrics dm new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int w dm.widthPixels;//宽 int h dm.heightPixels;//高 Log.i("lgq","ww"w"....h"h); 输出&#xff1a;2019…

点击一百万次

在一个群里看到的题目&#xff0c;就找他要来玩儿了。http://120.24.86.145:9001/test/得点击一百万次图片才行。 可以看出&#xff0c;是通过jqeury发包操作点击量的&#xff0c;所以只需要发一个包控制点击量就ok了 转载于:https://www.cnblogs.com/nul1/p/8611341.html

基于token与基于服务器的身份认证

基于token与基于服务器的身份认证 1、基于服务器的身份认证 我们清楚 http 协议是无状态的&#xff0c;也就是说&#xff0c;如果我们已经认证了一个用户&#xff0c;那么他下一次请求的时候&#xff0c;服务器不知道我是谁&#xff0c;我们就必须要再次认证。 我们与浏览器交…

Android 视频通话

基于腾讯云视频SDK 实现效果 实现步骤&#xff1a; 1、登录腾讯云开发者平台 https://cloud.tencent.com/product/trtc 2、进入 实时音视频 主页。并创建应用 进入实时音视频方法&#xff1a;点击——控制台——>云产品 3、进入开发辅助主页&#xff0c;创建uid 第四…

c++的作业2

本题再次加深了我对于素数与非素数的认识&#xff0c;以及学会了控制每行素数的个数。 本题&#xff0c;让我再一次加深对于是switch的用法&#xff0c;case中只能是常量表达式&#xff0c; break&#xff0c;continue都适用于三种循环结构&#xff0c;即&#xff0c;for&#…

JPA分页查询与条件分页查询

情有独钟的JPA 平时在写一些小项目时&#xff0c;比较喜欢引用 Spring Data Jpa&#xff0c;其实还是图他写代码快~ 在日常的开发工作中&#xff0c;分页列表查询基本是随处可见&#xff0c;下面一起看一下如何使用 jpa 进行多条件查询以及查询列表分页呢&#xff1f; 关于JPA的…

Android 创建文件,删除文件,加载本地txt文件,string转txt文件,创建文件夹,读取文件夹,open failed: ENOENT

1、创建文件 String fileName "my.txt"; File fs new File(Environment.getExternalStorageDirectory() "/msc/" fileName); 安卓10内存文件 String downFileDir context.getFilesDir().getAbsolutePath(); File dest new File(downFileDir, te…

Python基础44(PyMySQL模块)

PyMySQL安装方法 pip install pymysql 连接数据库 注意事项 在进行本文以下内容之前需要注意&#xff1a; 你有一个MySQL数据库&#xff0c;并且已经启动。你有可以连接该数据库的用户名和密码你有一个有权限操作的database基本使用 # 导入pymysql模块import pymysql# 链接库&a…

开箱一个docker

开箱一个docker 1、docker 的出现&#xff1f; 1.1、环境切换配置麻烦 通常我们在开发环境写好代码&#xff0c;打个war/jar包&#xff0c;扔到tomcat下&#xff0c;就算是跑起来了&#xff1b;但是扔到生产环境就挂了&#xff0c;what&#xff1f;各种错误。。。 1.2、应用之…

Android 调用系统相机拍照和录制视频,保存照片和视频

1、申请权限 <uses-permission android:name"android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name"android.permission.CAMERA" /> java private static final String[] authBaseArr {//申请类型Manifest.permi…

jedis jedispool Redistemplate

jedis jedispool Redistemplate 整理了之前学习 redis 的笔记&#xff0c;强烈建议看最后总结。 在大型系统数据读请求中&#xff0c;基本上90%都可以通过分布式缓存集群来抗下来&#xff0c;而 Redis 又是分布式缓存集群的主要践行者&#xff0c;因此了解 Redis 是必不可少的…

支付宝支付提示 4006 ISV权限不足,建议在开发者中心检查签约是否已经生效

解决方法非常简单&#xff1a; 1、首先登录支付宝商家中心&#xff1a;https://b.alipay.com/index.htm 查看产品中心&#xff0c;对应功能有木有开通&#xff0c;或者签约开通 2、登录支付宝开放平台&#xff1a;https://open.alipay.com/platform/home.htm 查看应用功能列…

剑指Offer-按之字形顺序打印二叉树

package Tree;import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue;/*** 请实现一个函数按照之字形打印二叉树&#xff0c;即第一行按照从左到右的顺序打印&#xff0c;第二层按照从右至左的顺序打印&#xff0c;第三行按照从左到右的顺序打印&a…

android 自定义相机,Camera,相机遮罩层

实现效果&#xff1a; 实现方法&#xff1a;一个自定义view实现demo 一、自定义相机Camera&#xff0c;无API版本限制 &#xff08;1&#xff09;。实现接口 implements SurfaceHolder.Callback private SurfaceView mView;private Camera mCamera; private int cameraId 0;/…