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

kingwrcy kingwrcy 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
问题如下:
为什么如下代码会报断错误?
环境是
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;
}
...全文
评论 2
收藏 已收藏
分享
返回顶部
kingwrcy
C语言 70,040 成员 243,237 内容