首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

字符串的奇怪有关问题

2012-03-19 
字符串的奇怪问题chara[]hello char*pa*pw 这样的话就可以修改*p的值但是char*ahello char*p

字符串的奇怪问题
char   a[]   =   "hello ";
        char*   p   =   a;
        *p   =   'w ';

这样的话就可以修改*p的值

但是
        char*   a   =   "hello ";
        char*   p   =   a;
        *p   =   'w ';
就不行了,不知道是什么原因?

[解决办法]
char a[] = "hello "; 表示定义了一个字符数组,数组的内容从 "hello "里复制。数组成员的内存从栈中获得

char* a = "hello "; 表示定义了一个指向字符的指针,指针的值是全局const字符数组 "hello "中第一个字符的地址。改变const的内容将导致未定义错误。如果从实现角度来看的话, "hello "存放在只读的.data段中,*p = 'w '将导致Access Violation错误。

热点排行