在 c 中,我们假设我有以下代码:
int func(){
char* s = "bla";
}
我不确定这是什么编译的。
由于s
不是静态的,因此在func()
结束后它不会生存,因此似乎指向" bla"迷路了。
另一方面,该程序仍然应该知道" bla"因此,下次func()
被调用时,s
将获得相同的地址。
我想知道上面的代码是否正常,或者我是否必须将s
声明为静态?
答案 0 :(得分:0)
目前尚不清楚如何使用此本地指针。然而,字符串文字的地址将是相同的。它不取决于函数被调用的次数。此字符串文字具有静态存储持续时间。因此,每当函数获得控件时,指针将使用相同的地址进行初始化。除非您更改其初始值并希望它将存储在函数调用之间的指针中,否则无需将指针本身声明为静态。