可能重复:
数组名称是 C 中的指针吗?
#include <stdlib.h>
int main(int argc, const char *argv[])
{
char *b=(char*)malloc(sizeof(char)*50);
b=(char*)"hello world";
// works
char a[50];
a=(char*)"hello world";
//doesn't work. why? I thought array names are just pointers that point
//to the first element of the array (which is char). so isn't a char*?
return 0;
}
我认为它不起作用的原因是因为没有一个名为“a”的变量实际上存储了一个 char* 值。那么'a'应该被认为是一个右值吗?我不确定我是否正确理解了这个概念