来源:互联网 发布:nginx服务器 编辑:程序博客网 时间:2024/06/05 20:29

(1)

int *p=a和int *p=&a有什么区别?

int *p就是申请一个int型的指针p,指针是用来保存地址的,所以&a就是取得a的地址赋给p。但是int*p=a的话,a必须是个地址,可以是指针,也可以使数组名。

(2)

int *a和int a [ ]有什么区别?

int *a和int a [ ] 的区别,就等价于指针与数组的区别。
指针与数组的区别:
1、指针的本质是一个与地址相关的复合类型,它的值是数据存放的位置(地址);数组的本质则是一系列的变量。
2、数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。指针可以随时指向任意类型的内存块,它的特征是"可变",所以我们常用指针来操作动态内存。
3、当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。