指针数组的使用 指针参数与数组参数的关系?

指针参数与数组参数的关系?在C/C程序中,指针和数组在许多地方可以相互替换,给人一种等价的错觉。在静态存储(如全局阵列)或堆栈中创建阵列。数组的名称对应于(而不是指向)一个内存块,并且它的地址和容量在

指针参数与数组参数的关系?

在C/C程序中,指针和数组在许多地方可以相互替换,给人一种等价的错觉。

在静态存储(如全局阵列)或堆栈中创建阵列。数组的名称对应于(而不是指向)一个内存块,并且它的地址和容量在其生存期内保持不变。只能更改数组的内容。

指针可以随时指向任何类型的内存块,其特点是“可变”,所以我们经常使用指针来操作动态内存。

当数组作为函数参数传递时,数组将自动退化为相同类型的指针。

所以:

char a[]=“你好世界”

char*P=a

cout<< sizeof(a)<< endl//12字节

cout<< sizeof(P)<< endl//4字节

void func(char a[100])

{

cout<< sizeof(a)<< endl//4字节而不是100字节

}