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

C++ C++;指向本地字符串文字的指针,c++,C++,我今天遇到了下面的代码,我不完全确定它会做什么: pLogFileCriteria->taskToLogFor[0][0] = *"*"; 它将值设置为指向堆栈上本地字符串的指针?那么当它退出这个函数时,内存是否仍然存在?对我来说似乎很有趣。字符串文字具有静态持续时间。它们在程序的生命周期内一直存在,因此获取指向其第一个字符的指针在函数完成后仍然有效。但请注意间接运算符。它将导致指向第一个字符的指针被取消引用,从而产生该字符。类型*“*”为常量字符。您的代码段正在为左侧计算的位置分配一个

我今天遇到了下面的代码,我不完全确定它会做什么:

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

它将值设置为指向堆栈上本地字符串的指针?那么当它退出这个函数时,内存是否仍然存在?对我来说似乎很有趣。

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

类型
*“*”
常量字符
。您的代码段正在为左侧计算的位置分配一个
char

这将做同样的事情:

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

你可能是对的。似乎写这段代码的人想把它弄得尽可能复杂。@Tyrelvaniekerk如果这就是他们想要的,他们没有努力。它可能要复杂得多。所以,正如詹姆斯在评论中所说,它实际上只是将那个角色设置为“*”。