指针和数组的区别

来源:互联网 发布:软件测试团队 编辑:程序博客网 时间:2024/05/16 12:10

(1):从空间分配上:指针是动态分配空间,在malloc上分配空间,分配的空间不一定连续,空间使用完之后要调用free函数进行释放。而数组是静态分配空间,在栈空间或者在数据区分配空间,分配的空间是连续的,局部变量数组在函数执行结束后释放空间,而全局变量数组在整个程序执行完之后才释放。

(2):从访问效率上:数组是直接访问,而指针是通过地址间接访问,数组的访问效率比指针要高

(3):从安全性上:数组使用不当回造成数组越界,而指针使用不当可能会造成内存泄漏。

(4):从函数形参上:数组当形参传递的时候要用数组元素指针来接,指针变量当形参传递时,要用指针的指针即二维指针来接。

(5):从字节大小上:指针变量的大小是固定的,由操作系统的位数来决定,而数组内存的大小由数组的大小和数组元素的数据类型共同决定。


指针的优势:

(1):指针是动态分配空间,可以提高空间的利用率

(2);使用指针更加灵活

(3):C语言的访问效率高,可以直接访问硬件,就是因为通过指针对硬件(寄存器)直接进行操作

0 0