数组与指针的异同

来源:互联网 发布:域名怎么防腾讯拦截 编辑:程序博客网 时间:2024/05/16 01:40

相同情况:

1, 在作为函数的行参时,它们可以互换  如 void fun( int a[]) is equal to  void fun(int *a).

2,    表达式中的数组名 就是一个指针;


**  没有办法把数组本身传递给一个函数,因为传递时数组总是被自动转为指向数组的指针。


不同情况:

1, 指针就是指针,不可改成数组。当然当指针作为形参并且你知道实际传递的是一个数组时,是可以在函数内用下标访问指针。

2,在形参以外的其他情况下, 定义和声明必须匹配。定义一个数组要在其他文件得到应用就得把它声明成数组,指针亦如是。

3, 定义数组必须为数组分配空间,这就要求指定数组大小或者间接指定数组大小。定义指针时编译器不为指针所指向的对象分配空间而只为指针本身分配空间,除非定义时给指针一个字符串常量进行初始化,但这些字符串常量将被初始化成只读,这和数组不同。

原创粉丝点击