gpt4 book ai didi

c++ - 这个静态变量赋值给局部函数中的指针有什么问题?

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

int* func(int *ptr)
{
static int a = 5;
ptr = &a;
return ptr;
}

有人在采访中问过我这个问题。现在的重点是,变量“a”是静态的,因此,与声明的普通变量不同,一旦函数返回,它就会失去它的值(从堆栈中弹出),这个变量保留它的值,因为它是静态的。

那我没看懂,这段代码有什么问题?

最佳答案

ptr 作为参数没有意义。不使用传递的值。您可以将其更改为

int* func()
{
static int a = 5;
return &a;
}

关于c++ - 这个静态变量赋值给局部函数中的指针有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17150785/

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