【问题标题】:Char * pointer initialization [duplicate]Char *指针初始化[重复]
【发布时间】:2012-10-02 19:51:07
【问题描述】:

可能重复:
C String literals: Where do they go?

如果我有以下代码

char *str = "Tryout" ; 

字符串将存储在哪里?堆?如果是堆栈,那么指针是否指向堆栈位置?

【问题讨论】:

  • 请避免询问有关 C 和 C++ 的问题,它们不是同一种语言,并且有时存在细微差别。
  • 是的,但以上两者都适用

标签: c++ c


【解决方案1】:

字符串有一个静态存储类(可能是只读数据),str 是一个具有自动存储功能的局部变量。这就是为什么最好将其声明为const char *

【讨论】:

  • 它不在自动存储中!它在静态存储中。
  • @LuchianGrigore:str 变量是自动的,而它指向的字符串是静态存储 :)
猜你喜欢
  • 1970-01-01
  • 2018-01-09
  • 1970-01-01
  • 2011-04-10
  • 1970-01-01
  • 1970-01-01
  • 2012-06-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多