iOS-alloc对象指针与地址
时间:2021-08-01
本文章向大家介绍iOS-alloc对象指针与地址,主要包括iOS-alloc对象指针与地址使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
以一个最简单的尝试验证:指针本身是一个变量,存放持有(指向)的内存地址。
Data *p1 = [Data alloc];
Data *p2 = [p1 init];
Data *p3 = [p1 init];
NSLog(@"%@",p1);
NSLog(@"%@",p2);
NSLog(@"%@",p3);
会输出什么?
指针的值,也就是指针指向的内存地址。
如果变一下呢?
Data *p1 = [Data alloc];
Data *p2 = [p1 init];
Data *p3 = [p1 init];
NSLog(@"%@ - %p",p1,p1);
NSLog(@"%@ - %p",p2,p2);
NSLog(@"%@ - %p",p3,p3);
以%p输出,p1、p2、p3结果会不一样吗?
结果是一样的。同样都是输出指针的值。
再换一下呢?
Data *p1 = [Data alloc];
Data *p2 = [p1 init];
Data *p3 = [p1 init];
NSLog(@"%@ - %p - %p",p1,p1,&p1);
NSLog(@"%@ - %p - %p",p2,p2,&p2);
NSLog(@"%@ - %p - %p",p3,p3,&p3);
这下还一样吗?
终于不一样了!
原因是最后是取指针地址,输出的是指针变量本身的地址啦。可以看到指针是在栈上创建的,其每个大小为8个字节(64位下)。
原文地址:https://www.cnblogs.com/pionice/p/15086865.html
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- MapReduce之片和块的关系
- MapReduce的常见输入格式之CombineTextInputFormat
- MapReduce之Job提交流程
- MapReduce之自定义InputFormat
- MapReduce之MapTask工作机制
- 数据链路层的三个基本问题
- DEBUG ArrayList
- 【PAT甲级】1002 A+B for Polynomials (25分)
- c/c++补完计划(一): 指针常量和常量指针
- 从0到1开发测试平台(六)增加登录接口
- FFmpeg 开发(04):FFmpeg + OpenGLES 实现音频可视化播放
- 【剑指offer】31.整数中1出现的次数
- 【剑指offer】35.数组中的逆序对
- 针对用友ic读卡器 web 脚本的重构
- NIO实现多人聊天室