C ++指向本地字符串文字的指针

时间:2017-08-25 20:28:53

标签: c++

我今天看到了这个代码,我不完全确定它会做什么:

pLogFileCriteria->taskToLogFor[0][0] = *"*";

它将值设置为指向堆栈中的本地字符串的指针?因此,当它退出此功能时,该内存是否仍然存在?似乎对我说鱼。

2 个答案:

答案 0 :(得分:4)

*"*"的类型为const char。您的代码段正在为左侧计算的位置分配char值。

这会做同样的事情:

pLogFileCriteria->taskToLogFor[0][0] = '*';

答案 1 :(得分:1)

字符串文字具有静态持续时间。它们存在于程序的生命周期中,因此获得指向它的第一个字符的指针在该函数之后仍然有效。但请注意间接算子。它将导致指向第一个字符的指针被取消引用,从而产生该字符。