关于char*和char[]区别,求解答.

kingwrcy 2011-08-22 08:01:08
问题如下:
为什么如下代码会报断错误?
环境是
gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4)
ubuntu版本是11.04

char *b 换成 char b [20],程序就能正常输出.

gdb单步发现*dest++=*src++出错.不能给*dest赋值,一赋值就报错,为什么阿?


#include <stdio.h>

char *strcpy(char *dest, const char *src);

int main(void){
char *a = "hello world";
//char b[20] ;
char *b = "fuckthegfw!!!!";
printf("%s\n", strcpy(b, a));
return 0;
}

char *strcpy(char *dest, const char *src){
char *deshead = dest;
for(;(*dest++=*src++)!='\0';);
return deshead;
}
...全文
71 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ningto.com 2011-08-22
  • 打赏
  • 举报
回复
char *a = "hello world";
常量字符串不允许修改所指向的内容
jackyjkchen 2011-08-22
  • 打赏
  • 举报
回复
char *如果直接指向一个字符串,是常量,不得修改。

在C/C++代码中,双引号括起来的字符串,是const char*类型的

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧