嘟嘟嘟666 2021-11-29 22:38 采纳率: 70%
浏览 9
已结题

字符与字符串串相关问题

char* a = "string1";
char b[] = "string2";
gets(a); //试图将读入的字符串保存到a指向的区域,运行崩溃!
gets(b) //OK
这个运行错误

char* a = "string1";
char b[] = "string2";
a = b; //a,b指向同一个区域
gets(a) //OK
printf("%s", b) //会出现gets(a)时输入的结果
这个运行正确
麻烦讲解一下,谢谢

  • 写回答

1条回答 默认 最新

  • 五一编程 2021-11-29 23:12
    关注

    char* a = "string1";是一个常量字符串,不能进行修改,故而第一个gets(a); 错误
    然而a = b;后a指向了b的空间地址,是分配的b[8],故而gets(a) //OK
    因为a和b是同一个区域,所以printf("%s", b) //会出现gets(a)时输入的结果

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月9日
  • 已采纳回答 12月1日
  • 创建了问题 11月29日

悬赏问题

  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿