指针和数组的不同
1. 指针和数组保存的数据内容不同
指针保存指针变量,即保存数据的地址;数组保存同一类型数据的值
2. 指针用于动态数据结构,就是说指针保存的数据可以改变;而数组用于存储固定数目且数据类型相同的元素即一旦数组的大小定了就不容易变了;
3. 指针用malloc()和free()来分配空间和释放空间,而数组是隐式分配和删除;
4. 指针通常指向匿名数据,而数组自身就是数组名
5. 数组名作为函数参数时就等价与指针,某种意义可以说他们等价的,但是一般情况下定义一个数组,则数组名就是常量是不能被改变的,一旦作为函数参数传递,代表地址,则它本身就变为指针变量。显然和我们认识的数组名有所违背。
例子:
int arr[]
arr++;
上面两行在一般的主函数中就会出现编译错误
int fun(int arr[])
arr+;
上面两行作为函数参数是可以改变的
指针和数组的相同点
1. 作为函数参数时数组名就等于指针 void fun(int arr[])
解释:函数形参int arr[]与int *arr是等价的,也就是通常我们说的数组名代表数组首元