gpt4 book ai didi

c - 为什么我们在初始化一个指向整数的指针时,在整数变量前使用 "&"?

转载 作者:太空狗 更新时间:2023-10-29 17:17:43 25 4
gpt4 key购买 nike

我目前正在学习C中的指针,我对指针的初始化感到困惑。我可能会问一些愚蠢的问题,但我只是想确保我正确理解和学习了一些东西。

因此,要初始化一个指针:

int a = 3;
int *pointer = &a;
*pointer = 10;

int a = 3;
int *pointer;
pointer = &a;
*pointer = 10;

到目前为止,我知道"* " 声明了一个指针类型。

*pointer 是指针指向的地址中任何值的值。

& 是某物的内存地址。

在第二种情况下我可以理解'pointer = &a'。

但是,为什么我们在上面的第一种情况下设置 *pointer = &a 因为 *pointer 表示该地址中的值?

为什么我们在第一种情况下初始化指针时,要让那个指针中的值等于变量的地址?

最佳答案

令人困惑的是,*pointer = 10 中的星号和 int *pointer = &a 中的星号表示两种不同的含义。

  1. *pointer = 10 取消引用变量 pointer 并将值 10 分配给取消引用操作的结果。
  2. int *pointer = &a 声明变量 pointerint * 类型,并用值 &a 初始化它。这里没有取消引用。星号在这里提醒您,取消引用指针时,您得到一个int。换句话说,这声明了 pointer 使得 *pointerint

关于c - 为什么我们在初始化一个指向整数的指针时,在整数变量前使用 "&"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46998044/

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