#include<stdio.h>
#include<string>
void main()
{
char arr[]={'h','e','l','l','o'};
char brr[]="hello";
printf("%d\n",sizeof(arr)); //5
printf("%d\n",sizeof(brr)); //6
printf("%d\n",strlen(arr)); //越界 19
printf("%d\n",strlen(brr)); //5
}
定义一个数组:表示在内存中开辟一段连续的内存空间
#include<stdio.h>
#include<string>
void main()
{
char arr[10]={'h','e','l','l','o'}; //不完全初始化,后面自动补零
char brr[10]="hello"; //不完全初始化,后面自动补零
printf("%d\n",sizeof(arr)); //10
printf("%d\n",sizeof(brr)); //10
printf("%d\n",strlen(arr)); //5 arr[]后面自动补零,即有结束标志位0
printf("%d\n",strlen(brr)); //5
}
#include<stdio.h>
#include<string>
void main()
{
char arr[]={'h','e','l',0,'l','o'};
char brr[]="hel0lo";
printf("%d\n",sizeof(arr)); //6
printf("%d\n",sizeof(brr)); //7
printf("%d\n",strlen(arr)); //3
printf("%d\n",strlen(brr)); //6
}
#include<stdio.h>
#include<string>
void main()
{
char arr[]={'h','e','l','0','l','o'}; //‘0’为字符不是结束标志位,不同于‘\0’
char brr[]="hel0lo";
printf("%d\n",sizeof(arr)); //6
printf("%d\n",sizeof(brr)); //7
printf("%d\n",strlen(arr)); //
printf("%d\n",strlen(brr)); //6
}
Strlen():计算字符串的有效长度,遇到结束标志位‘\0’或者0结束,
强制在字符串末尾加结束标志位‘\0’或者0.