【发布时间】:2014-11-30 04:36:08
【问题描述】:
当我使用names 打印字符串时出现此错误,但使用tempNames 时没有错误。
char* names[] = { "JIM",
"RAM",
"SAM",
0 };
int main(int argc, char *argv[])
{
char** tempNames = names ;
while(*names != 0)
std::cout << *names++ << std::endl ;
return 0;
}
为什么*names 变成了右值,而*tempNames 变成了左值。
【问题讨论】:
-
*names是一个左值。但是你不能做names++。这就是问题所在。 -
是什么让你认为
*names是一个右值?您可以发布一些代码来支持该声明吗?
标签: c++ pointers lvalue rvalue