strcat函数的作用是会不会覆盖 0(关于C语言strcat函数的问题)

本文目录
关于C语言strcat函数的问题
s1数组在内存中占6个字节,hello字符5个还有一个结束符\0;接下来存放的是指针s2,共4个字节。
执行strcat(s1, s2);world中的w放在了原来s1字符串的\0位置,然后剩下的orld四个字符刚好覆盖了s2内存的4个字节,所以s2的内容已经改变。
这一点可以在%p输出s2中看出。
64是d的ASCII码,
6c是l的ASCII码,
72是r的ASCII码,
6f是o的ASCII码,
这和图中结果是一致的。
所以综上这里出错的代码是,s1空间不足导致数组越界,更改是把定义改成char s1="hello",里面数字只要确保可以容纳helloworld\0字符串即可。
这一点在平常写代码要注意。
有关C语言函数strcat的一个问题
会覆盖hello。当string中出现空字符时就是代表结束。string是空字符,这个串就是空串
关于c语言中的strcat函数,原型extern char *strcat(char *dest,char *src);
第一字符串是以\0结尾的
是系统自动加上的
第二
a数组有10个空间(0~9)
把hello存放进去了
就只有4个空间了,然后再用
strcat作用是将后面一个链接到前一个去
然后存储在第一个里面,但是注意
会把前一个的\0给覆盖
相当于第一个hello没有\0了就直接接上word,但是word会有自动的一个\0,所以刚好把a数值填满了也有结束的\0啊。
懂没?不懂我再给你解释,希望能帮助到你
望采纳!!

更多文章:
dos命令清屏(Windows DOS内部命令详解04——del、ren、cls、ver、date、time)
2026年11月6日 15:40
constantly的用法及词组(英语时态对应的时间状语都有哪些)
2026年11月6日 15:20
sql2016安装后如何打开(怎么打开sql server 2016 管理工具)
2026年11月6日 15:10
arcgis怎么设置文本框样式?用JS怎么实现一个把一个文本框中的选中内容加粗,效果基本上和编辑器的加粗效果相同急需
2026年11月6日 10:50
bios setup(“Bios setup”怎么在电脑里面设置)
2026年11月6日 10:00





