gpt4 book ai didi

c - 关于c语言中的指针和数组

转载 作者:行者123 更新时间:2023-11-30 21:03:21 24 4
gpt4 key购买 nike

我是 C 语言新手。我对 C 中的指针感到困惑。

这是一个简短的程序:

void main() {
int *array_ptr,big_array[20];
array_ptr=big_array;
}

这里,当我们将指针等同于数组名称时,C 会将数组第一个元素的地址分配给指针,因为它知道 array_ptr是一个指针,将存储一个地址。而在本例中,

 void main() {
int i, *x;
x = i;
}

这里,它会抛出一个错误。在此,我们必须使用 &i将其分配给指针 x 。为什么我们需要使用&如果是整数/ float 等,并且在数组的情况下不需要使用它?

最佳答案

不同之处在于,当指定的数组名不带下标时,C 会替换为指向数组第一个元素的指针。因此,如果您有一个名为 arrayint 数组,则:

array === &array[0]

当用于分配给指针类型时。区别仅在于类型 - int(以及所有基本类型)的处理方式与数组不同,数组是类型的集合。因此指针的工作方式也不同,只需了解编译器如何处理它们即可。

关于c - 关于c语言中的指针和数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25578846/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com