gpt4 book ai didi

c - 指向指针的简单指针

转载 作者:太空宇宙 更新时间:2023-11-04 05:43:56 24 4
gpt4 key购买 nike

我知道为什么会这样:

#include <stdio.h>

void cool_number(int **number) {
int value = 42;
int *p = &value;
*number = p;
}

int main () {
int *number;
cool_number(&number);
printf("number is %d\n", *number);
return 0;
}

我不明白的是为什么它没有(在我的机器上它打印 3700 或类似的东西)。

#include <stdio.h>

void cool_number(int **number) {
int value = 42;
int *p = &value;
int **x = &p;
number = x;
}

int main () {
int *number;
cool_number(&number);
printf("number is %d\n", *number);
return 0;
}

为什么两者不等同?

最佳答案

两者都是邪恶的,因为它们捕获堆栈变量的地址。

第二个没有按照您的预期进行,因为您直接分配给参数编号,这只是暂时的,第一个更改了参数编号指针指向的内容,这与主要指向中的编号相同。

关于c - 指向指针的简单指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10713551/

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