指针 数组 优点缺点分析 及 调用函数的流程
2016-12-12 14:07
323 查看
1.指针的优势:
①可以直接访问硬件 访问速度快
②提高空间的利用率
③指针使用地更加灵活
空间分配
访问效率
指针保存的是地址
(4字节) 直接 快
数组保存的是一片连续的空间
定位 加减
2.指针与数组的区别:
①空间分配
指针是动态分配空间,通过malloc在堆上分配所需要的空间,分配的空间不一定连续,在使用完之后需要调用free来释放空间,
而数组是静态分配空间,在全局变量区或者栈上分配空间,分配的空间是连续的,
局部变量在声明周期结束后自动释放,全局变量在程序结束完自动释放。
②访问效率
指针是通过地址间接访问,而数组是直接访问数值,因此指针的访问效率低,数组的访问效率高
③安全性
指针使用不当会造成内存泄漏,数组使用不当会造成数组越界
④函数形参
数组要用相应的指针当参数,而指针要用指针的指针来当参数
⑤字节大小
指针的字节大小是固定的,由操作系统决定,数组的字节大小由数组大小和数组指向的类型共同决定
⑥标识符
指针名是变量,数组名是指针常量,所以指针p可以进行p++,数组名不行
3.函数的执行过程:
①通过函数名找到函数入口
②给形参分配空间
③传参
④执行函数体里面的语句
⑤返回,释放空间
4.当只使用,不修改实参变量对应空间的值,传实参变量名
既要使用,也要修改,传实参变量对应空间的地址。
①可以直接访问硬件 访问速度快
②提高空间的利用率
③指针使用地更加灵活
空间分配
访问效率
指针保存的是地址
(4字节) 直接 快
数组保存的是一片连续的空间
定位 加减
2.指针与数组的区别:
①空间分配
指针是动态分配空间,通过malloc在堆上分配所需要的空间,分配的空间不一定连续,在使用完之后需要调用free来释放空间,
而数组是静态分配空间,在全局变量区或者栈上分配空间,分配的空间是连续的,
局部变量在声明周期结束后自动释放,全局变量在程序结束完自动释放。
②访问效率
指针是通过地址间接访问,而数组是直接访问数值,因此指针的访问效率低,数组的访问效率高
③安全性
指针使用不当会造成内存泄漏,数组使用不当会造成数组越界
④函数形参
数组要用相应的指针当参数,而指针要用指针的指针来当参数
⑤字节大小
指针的字节大小是固定的,由操作系统决定,数组的字节大小由数组大小和数组指向的类型共同决定
⑥标识符
指针名是变量,数组名是指针常量,所以指针p可以进行p++,数组名不行
3.函数的执行过程:
①通过函数名找到函数入口
②给形参分配空间
③传参
④执行函数体里面的语句
⑤返回,释放空间
4.当只使用,不修改实参变量对应空间的值,传实参变量名
既要使用,也要修改,传实参变量对应空间的地址。
相关文章推荐
- C++语言中数组指针和指针数组彻底分析
- C++语言中数组指针和指针数组彻底分析(系列一)
- C语言中字符数组和字符串指针分析
- 数组名与指针典型面试题的分析(2)
- 数组名与指针典型面试题的分析(1)
- C语言中字符数组和字符串指针分析
- 通过3个程序分析数组与指针区别
- 等级考试二级C++考点分析之数组、指针与引用
- C 语言中字符数组和字符串指针分析
- 数组与指针典型面试题分析--深入理解指针含义
- 补充内容:C++语言中数组指针和指针数组彻底分析
- C语言数组与指针定义分析
- C++语言中数组指针和指针数组彻底分析(系列一)
- C语言中字符数组和字符串指针分析
- boost::any的用法、优点和缺点以及源代码分析
- C++中使用基类指针操作子类数组的分析
- boost::any的用法、优点和缺点以及源代码分析
- c/c++字符指针与字符数组变量汇编层面的分析
- 关于用二维数组调用函数的寻址(多维数组和指针)
- 数组名与指针典型面试题的分析(转)