gpt4 book ai didi

c - 需要澄清指针在给定代码段中如何工作

转载 作者:行者123 更新时间:2023-11-30 20:56:13 27 4
gpt4 key购买 nike

所以这里我有一小段代码

int main(){
int a = 10;
void *p = &a;
int *ptr = p;
printf("%u \n",*ptr);
return 0;
}

产生结果 10!

我真的很困惑为什么。

如果我们说*ptr = p ,然后*ptr地址值为 p 。而p指向a的地址,a的地址包含10。我不明白我们如何从 *ptr 得到 10

谁能解释一下吗?

最佳答案

int *ptr = p 声明一个名为 ptr 的指针,并将 ptr 的值设置为等于 p< 的值。现在两者都包含a的地址。当它们被取消引用时,它们给出存储在 a 中的值。

更好的书写方式(imo)是 int* ptr = p; 这使得更清楚 ptr 是一个指针,并且您正在声明,而不是解除引用。

关于c - 需要澄清指针在给定代码段中如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26770838/

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