请你们看一下下面这段代码,代码和运行结果都在这两张图片里,谢谢!
3条回答 默认 最新
- 技术专家团-小桥流水 2022-01-09 12:23关注
strcat函数的要求是:第一个字符数组必须有足够的空间来容纳拼接后的字符串,否则拼接错误。
第一段代码中,aim数组的长度是固定的,只有8个字符(9个char空间,还有一个\0,相当于char aim[9]="I study ";)第一段代码能正确显示纯属幸运,大多数情况下,显示的会比I study hard 多很多不可知的字符。
第二段代码中aim是一个字符串常量指针,内容是不可更改的,strcat调用失败。
所以这两段代码中,strcat函数虽然能在aim后面追加内容,但是aim的空间是固定的,所以后面能否正确显示是不确定的。特别是第二段代码,aim是常量指针,它指向的内容不可更改。拼接错误后出现什么结果是不可预知的。char aim[14]="I study"; //aim的大小必须大于等于14才能保证strcat成功且准确 char str[]="hard"; strcat(aim,str);
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
- ¥15 IAR程序莫名变量多重定义
- ¥15 (标签-UDP|关键词-client)
- ¥15 关于库卡officelite无法与虚拟机通讯的问题
- ¥100 已有python代码,要求做成可执行程序,程序设计内容不多
- ¥15 目标检测项目无法读取视频
- ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
- ¥100 求采集电商背景音乐的方法
- ¥15 数学建模竞赛求指导帮助
- ¥15 STM32控制MAX7219问题求解答