char *p="ABCD"; 的话,只是声明了一个指针p去指向"ABCD"这个字符串,而字符串"ABCD"是静态字符数组,是不允许修改的char p[]="ABCD",则是建立了一个你可以操作的数组,值为"ABCD",所以可以修改. 打个比方,你去图书馆看书,书上第9页的内容你读了以后很有心得,想把心得写下来,但因为是图书馆的书不允许涂划,所以你记住了是在书的第9页.这个"第9页"就相当于一个指针,第9页的内容就是一个静态量,是你不能修改的.等到下次你带了笔记本来,把第9页的内容抄到笔记本上,然后写上自己的心得,这就相当于char p[],你自己建了个数组,把第9页的内容拷到笔记本上了....
|