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)时输入的结果
这个运行正确
麻烦讲解一下,谢谢
字符与字符串串相关问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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)时输入的结果本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥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编程架构设计的方案 有偿