Appearance
指针用于字符数组的时候和一般的整型数组一致 , 参考 C语言指针与一维数组;
但指针指向字符串常量的时候, 其保存的地址是 .ro 段^1 , 所以无法更改其中内容 :
c
char * p = "hello";
strcpy(p, "world");
printf("%s\n", p);上面的程序可以顺利的编译通过 ( 因为语法正确 ) .
但是不会成功运行 , 因为指针 p 指向的是一个常量地址 , strcpy 函数无法完成拷贝 .
但如果 p = "world" 的话实际上是将指针重新指向新的常量地址 , 而不是修改 , 所以是可以的 .