您的位置:首页 > 编程语言 > C语言/C++

C语言 数组VS指针

2016-07-21 10:21 323 查看
数组和指针完全是不一样的两个东西,但他们可以完成相同的功能。所以我们需要区分他们,大概可以从5个方面来区分:

1 空间分配:

数组:如果是局部变量,就在栈上分配一块连续的空间,分配的空间一般要比实际使用的大。属于静态分配空间。

指针:在堆上分配空间,是动态分配空间

2 访问效率:

数组属于直接访问,所以效率较高。而指针需要先访问指针的地址,再找到它所指向的空间,属于间接访问,效率低些。

3 安全性

数组因为数组大小是定义好的,所以可能会造成数组越界的问题。而指针会可能有野指针,会造成内存泄漏的问题

4 函数形参

数组会将其转化为指针,比如整型一维数组,用整型指针接参数。整型二维数组就用整型一维数组指针接参数。

5 操作

数组偏向于对值的操作,而指针偏向于对地址的操作。

一个在努力中的未来程序员,如果有更好的想法,欢迎评论。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 数组 指针