int _tmain(int argc, _TCHAR* argv[])
{
char* teststr = "hello";
teststr[1] = 'h';
printf("%s", teststr);
return 0;
}
发现teststr[1] = 'h';是不可写的,定义为char teststr []= "hello";数组则是可写的。
原来char *时,"hello"是存储在常量区里的,赋值时只是让char *指向它,而char 数组自己是有内存空间的,右边的"hello"只是用来初始化。
所以对指针赋值只是让它指向一个已有的地址或者NULL。