我了解到当我初始化一个字符数组时,就像初始化一个指向字符的指针。
但是,如果这是情况,为什么下面的代码输出奇怪的字符?
它适用于两种情况(当我还没有超出作用域的时候)。
char* returnMe()
{
char text[] = "Will I live forever?";
return text;
}
以下代码:
char* returnMe()
{
char* text = "Will I live forever?";
return text;
}
输出:
我会永远活着吗?
这两种初始化方式到底有什么不同呢? 它们都像指针一样工作,所以如果我这样做:
puts(X); //puts get char* as a parameter in it.
它适用于两种情况(当我还没有超出作用域的时候)。
std :: string
来避免所有这些麻烦。 - 463035818_is_not_a_numberchar*
应该改为const char*
,原因在这里提到:https://dev59.com/aF_Va4cB1Zd3GeqPPxjy#8795589。 - wally