Onewang

iOS developer logging

生命不息,奋斗不止


主页

数组和指针的区别

数组名和指针的区别

int arr[] = {1,2,3,4,5}; 定义一个数组,数组名为 arr,分别打印arr 本身的地址,arr 首元素的地址,以及arr本身;发现三者的值是相同的; 变量的三要素:变量名称;变量,即名为arr变量自己的地址,该地址存储了 arr 变量;arr 的值,为所指对象的值;

1.数组名取地址得到的是数组名所指元素的地址;对指针取地址得到的是指针变量自身的地址; 2.数组名是常量指针,指针时变量指针; 总结: 1.数组名代表了一个指向数组首元素的常量指针,一经定义,不可更改,数组名作为常量指针,其类型与数组元素类型相同。指针是变量指针,定义之后仍可更改,其类型在定义时确定; 2.当出现 sizeof,和&操作符时,数组名不在当成指向一个元素的常量指针来使用,而指针仍当成指向一个元素的变量指针来使用;

最近的文章

iOS中处理图片的一些小tip

将UIImage保存磁盘,用什么方式最好?目前来说,保存UIImage有三种方式:1.直接用NSKeyedArchiver把UIImage序列化保存,2.用UIImagePNGRepresentation()先把图片转为PNG保存,3.用UIImageJPEGRepresentation()把图片压缩成JPG保存;实际上,NSKeyedArchiver是调用了UIImagePNGRepresentation进行序列化的,用它来保存图片是消耗最大的;苹果对JPG有硬编码和硬解码,保存成JPG...…

继续阅读
更早的文章

深入理解OC方法缓存

objc_msgSend的消息分发的步骤: 判断receiver是否为nil,也就是objc_msgSend的第一个参数self,也就是要调用的哪个方法所属对象 从缓存里寻找,找到了则分发,否则 利用objc_class.mm中_class_lookupMethodAndLoadCache3方法去寻找selector 如果支持GC,忽略掉非GC环境的方法(retain等) 从本class的method list寻找selector,如果找到,填充到缓存中,并返回selector,...…

继续阅读