*p=&a和p=&a 指针参数与数组参数的关系?
指针参数与数组参数的关系?
在C/C程序中,指针和数组在许多地方可以相互替换,给人一种等价的错觉。
在静态存储(如全局阵列)或堆栈中创建阵列。数组的名称对应于(而不是指向)一个内存块,并且它的地址和容量在其生存期内保持不变。只能更改数组的内容。
指针可以随时指向任何类型的内存块,其特点是“可变”,所以我们经常使用指针来操作动态内存。
当数组作为函数参数传递时,数组将自动退化为相同类型的指针。
所以:
char a[]=“Hello world”
char*P=a
cout<< sizeof(a)<< endl//12字节
cout<< sizeof(P)<< endl//4字节
void func(char a[100])
{
cout<< sizeof(a)<< endl//4字节而不是100字节
C语言中,指针和数组名有什么关系吗?
当你问问题时,你不经意间说了一点不同。就地址而言,两者没有区别。但是,指针可以自由移动,但数组名称不能。这是因为数组名是一个命名变量,而变量名本身不能更改。因此,无论何时使用它,它都指向一个固定地址指针变量获取地址的过程实际上是一个匿名引用过程。它获取的是地址而不是变量名。因为您不知道它是变量名,所以可以随意更改它。
指针和数组的区别?
您好,指针指向一个内存,其中包含内存的地址。数组也是一个指针,但是当它在开始时被定义时,它指向一个空内存(由系统给出,您可以安全地使用它),并且它是一个*const常量指针(请注意,它不是指向常量的指针)。只要声明了这个指针,它就不能再指向其他内存。此外,数组和指针都可以用括号运算符进行偏移。总而言之,指针和数组的本质是完全相同的,只是数组在开始时得到一块内存
*p=&a和p=&a 指针数组的使用 c语言指针和数组的关系
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。