gpt4 book ai didi

c - 设置地址和初始化指针

转载 作者:太空狗 更新时间:2023-10-29 15:34:07 24 4
gpt4 key购买 nike

首先,我很抱歉我的英语不好,这不是我的母语。

我是第一次研究指针,我发现了一些很奇怪的东西。

我正在阅读的书上说 * 标记表示 'pa' 指示的变量。

但是当我尝试初始化一个指针时

int a;
int *pA =&a;

(他们在这种情况下使用了*pA)然后改变它,

*pA=&a;

不起作用,并且

pA=&a;

有效。

所以我的问题是“初始化指针和只是替换之间有什么区别吗?”

最佳答案

int a;

这会在栈上分配一个整数

int* pA = &a;

这会在堆栈上分配一个 int 指针并将其值设置为指向 a。 '*' 是声明的一部分。

*pA = &a;

在这种情况下,'*' 是一个运算符,表示“查看 pA 指向的位置”,这是一个 int。然后您试图将该 int 设置为 a 的地址,这是不允许的。

pA = &a;

现在这与第二个语句相同。它将 pA 的值设置为指向 a。

关于c - 设置地址和初始化指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1713183/

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