相关原文:http://bbs.csdn.net/topics/390998001
字符串常量存入const指针, 可以.const char *p="aws"
字符串常量存入数组可以 ;char a[] = "aws"
字符串变量存入非const指针可以(变量char a[] = "aws") char *p=a;
要求用const char*来存放字符串常量,不就是为了防止通过char[i]的方式来修改字符串的内容吗?但是另一方面,char[]仍然可以接收字符串常量,它仍然可以用char[i]的方式来修改字符串的内容,那么这样的规定又有何意义呢?(p[1] = 'q';是允许的)
char[]是有内存空间的, 是把字符串"复制"到char[]的内存中.char[]中存的是复制品, 不是字符串常量了, 是变量.
而char*是个指针, 指向字符串常量.