字符串与字符指针的问题:为什么用数组定义的字符串可以修改,而用指针定义的不能修改?

[复制链接]
查看11 | 回复3 | 2018-4-9 19:48:32 | 显示全部楼层 |阅读模式
char *p="abcde";这种方式是定义了一个字符型指针,指向常量字符串"abcde" char p[]="abcde";这种方式是定义了一个字符数组,其长度自动设置其等于"abcde", 所以第一种指向了常量区,无法修改;第二种定义了普通的数组变量,放在栈中,可以修改...
回复

使用道具 举报

千问 | 2018-4-9 19:48:32 | 显示全部楼层
"I love you China, do you love me?"在存放在.rodata段,该段是只读的,当你强行做修改的时候,当然要报错喽。而定义为数组的形式之后:就把这个字符串拷贝进数组了,对于数组中的内容,可以随便修改呀. 原来的字符串还是不变的。。。具体回答,参考我的博客:http://blog.csdn.net/hu1020...
回复

使用道具 举报

千问 | 2018-4-9 19:48:32 | 显示全部楼层
因为再定义字符指针时默认的在前面有一个const就是无法修改它的值。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行