数组作为函数参数传递 指针参数与数组参数的关系?
浏览量:1683
时间:2021-03-11 12:25:08
作者:admin
指针参数与数组参数的关系?
在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字节
}
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。