相关疑难解决方法(0)

C语言中字符串文字的"生命周期"

以下函数返回的指针不会无法访问吗?

char *foo( int rc ) 
{
    switch (rc) 
    {
      case 1:           return("one");
      case 2:           return("two");
      default:           return("whatever");
    }
}
Run Code Online (Sandbox Code Playgroud)

所以C/C++中局部变量的生命周期实际上只在函数内,对吧?这意味着,在char* foo(int)终止后,它返回的指针不再意味着什么?

我对本地var的生命周期有点困惑.谁能给我一个很好的澄清?

c function local-variables lifetime string-literals

79
推荐指数
5
解决办法
2万
查看次数

函数返回后,指向字符串文字的指针是否仍然有效?

以下函数返回的指针是否有效?

const char * bool2str( bool flg )
{
    return flg ? "Yes" : "No";
}
Run Code Online (Sandbox Code Playgroud)

它在Visual C++和g ++中运行良好.C++标准对此有何看法?

c++ standards pointers

17
推荐指数
4
解决办法
3895
查看次数