gpt4 book ai didi

c - C 中以前的声明是否改变了指针的初始化方式?

转载 作者:行者123 更新时间:2023-11-30 20:53:04 25 4
gpt4 key购买 nike

C 中的指针是如何初始化的?看起来以前的声明改变了它们的初始化方式。

考虑以下示例:

int *a;
printf("a: %p\n", (void*)a);

此代码片段的结果是

a: (nil)

所以人们可能会认为函数开始时的变量是用 null 初始化的,但如果我执行这段代码:

int *a;
for(int i = 0; i < 1; i++){
int *b;
printf("a: %p\n", (void*)a);
printf("b: %p", (void*)b);
}

这是结果:

a: 0x7ffff3bb2e40
b: (nil)

如何确定变量的初始化方式?

最佳答案

如果在文件范围内定义了指针,则它将初始化为 NULL。

如果它是在 block 作用域中定义的,则指针未初始化,因此它可以具有任何随机值,包括 NULL。

关于c - C 中以前的声明是否改变了指针的初始化方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53437997/

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