解析ios系统关于数组和指针
大小:0.2 MB 人气: 2017-09-26 需要积分:11
- int *p 的解释:将来的指针是指向int类型
指针p + 1 说明内存地址会加上4个字节(因为是int占4个字节)
如果是 double *p 指针p + 1内存地址会加上8个字节(因为是double占8个字节)
- 通过上述解释我们得出一个公式:
指针p + n = p当前的地址值 + n *指向类型所占用的字节数
指针p - n = p当前的地址值 - n * 指向类型所占用的字节数
数组与指针:
int arrayName[4] = {10, 20, 30, 40};
上面的数组占16个字节(原因:每个int类型占4个字节,这个数组有4个int类型,所以占16个字节)
arrayName就是数组名
数组名 :表示数组首元素的地址,相当于一个指向数组首元素的指针
相信你已经有点蒙圈了,我们在进一步解释一下:
NSLog(@“%p %p”, arrayName, arrayName + 1);
NSLog(@“%p %p”, &arrayName, &arrayName + 1);
1. arrayName 与 &arrayName
arrayName 是数组名,所以打印出来是数组首元素的地址
&arrayName 含义就是数组的地址(等价于指向arrayName数组的指针),因为没增加1,所以数组的地址就是数组首元素的地址所以 arrayName 《-》&arrayName 打印出的地址是一样的
2.(arrayName + 1) 与 (&arrayName + 1)
(arrayName + 1)通过上述解释我们知道(arrayName + 1)指针是指向int类型,所以内存地址会加上4个字节
(&arrayName + 1)我们知道&arrayName是数组的地址(等价于指向arrayName数组的指针) 因为增加1,这个数组总共占16个字节,所以内存地址会加上16个字节
非常好我支持^.^
(0) 0%
不好我反对
(0) 0%
下载地址
解析ios系统关于数组和指针下载
相关电子资料下载
- iOS17.1可能明天发布,iOS17.1主要修复哪些问题? 379
- 常见的一级指针参数有什么作用 73
- 函数类型和函数指针类型的区别 18
- 一文详解ZGC关键技术 26
- C语言编写程序执行效率高的原因是什么? 31
- 声明数组语法及应用案例 30
- Shell脚本程序开发-数组(四) 101
- C编程中指针的语法和工作原理 153
- Python 中的5种隐藏技巧 105
- 辛苦整理的C语言笔记,一学就会 56