#include<stdio.h>
#include<string.h>
int main(void)
{
char s1[]="bbbbbbb";
char s2[]="aaa";
strcat(s2,s1);
printf("s1=%s\n",s1);
printf("s2=%s\n",s2);
printf("sizeof(s1)=%d,strlen(s1)=%d\n",sizeof(s1),strlen(s1));
printf("sizeof(s2)=%d,strlen(s2)=%d\n",sizeof(s2),strlen(s2));
return 0;
}
S2数组就定义了4个字节。strcat都是溢出了
假设你写成char s2[100] = "aaa";
那sizeof(s2)就是100了
因为s2在初始化的时候被初始为4,后面连接不会改变数组的长度
和你写char s2[4]="aaa"
效果是一样的