【发布时间】:2012-10-02 19:51:07
【问题描述】:
如果我有以下代码
char *str = "Tryout" ;
字符串将存储在哪里?堆?如果是堆栈,那么指针是否指向堆栈位置?
【问题讨论】:
-
请避免询问有关 C 和 C++ 的问题,它们不是同一种语言,并且有时存在细微差别。
-
是的,但以上两者都适用
如果我有以下代码
char *str = "Tryout" ;
字符串将存储在哪里?堆?如果是堆栈,那么指针是否指向堆栈位置?
【问题讨论】:
字符串有一个静态存储类(可能是只读数据),str 是一个具有自动存储功能的局部变量。这就是为什么最好将其声明为const char *。
【讨论】:
str 变量是自动的,而它指向的字符串是静态存储 :)