1.指针的优势:
①可以直接访问硬件 访问速度快
②提高空间的利用率
③指针使用地更加灵活
空间分配 访问效率
指针保存的是地址 (4字节) 直接 快
数组保存的是一片连续的空间 定位 加减
2.指针与数组的区别:
①空间分配
指针是动态分配空间,通过malloc在堆上分配所需要的空间,分配的空间不一定连续,在使用完之后需要调用free来释放空间,
而数组是静态分配空间,在全局变量区或者栈上分配空间,分配的空间是连续的,
局部变量在声明周期结束后自动释放,全局变量在程序结束完自动释放。
②访问效率
指针是通过地址间接访问,而数组是直接访问数值,因此指针的访问效率低,数组的访问效率高
③安全性
指针使用不当会造成内存泄漏,数组使用不当会造成数组越界
④函数形参
数组要用相应的指针当参数,而指针要用指针的指针来当参数
⑤字节大小
指针的字节大小是固定的,由操作系统决定,数组的字节大小由数组大小和数组指向的类型共同决定
⑥标识符
指针名是变量,数组名是指针常量,所以指针p可以进行p++,数组名不行
3.函数的执行过程:
①通过函数名找到函数入口
②给形参分配空间
③传参
④执行函数体里面的语句
⑤返回,释放空间
4.当只使用,不修改实参变量对应空间的值,传实参变量名
既要使用,也要修改,传实参变量对应空间的地址。