c语言字符数组
初始化方法一以及打印字符数组方法一
字符数组大小为10
int main()
{
char arr[10] = { 'h','e','l','l','o' };//后面补0
//%s是以字符串打印,获取是地址
//%s会接受字符串结束标志['\0']之前的所有字符,在ASCII就是数字0
printf("%s\n", &arr);
printf("%d\n", sizeof(arr));
}
打印出字符数组方法二
字符数组大小为10
int main()
{
char arr[10] = { 'h','e','l','l','o' };
for (int i = 0; i < 10; i++)
{
printf("%c", arr[i]);
}
printf("\n%d", sizeof(arr));
}
字符数组初始化方法二
字符数组大小为10
int main()
{
char arr[10] = "hello";
printf("%s", &arr);
printf("\n%d", sizeof(arr));
}
初始化方法一,字符数组大小为5
int main()
{
char arr[] = { 'h','e','l','l','o'};
printf("%d\n", sizeof(arr));
}
结束没有’\0’,%s找不到’\0’,会出现烫字符问题
int main()
{
char arr[] = { 'h' ,'e','l','l','0'};
printf("%s\n", &arr);
}
初始化方法二,字符数组大小为6因为hello为5加上1个结束标志符’\0’
int main()
{
char arr[] = "hello";
printf("%d\n", sizeof(arr));
}
打印结果为7,'\n’算一个字符
int main()
{
char arr[] = "hel\nlo";
printf("%d\n", sizeof(arr));
}
同理打印结果为8,‘\0’算一个字符
int main()
{
char arr[] = "he\0l\nlo";
printf("%d\n", sizeof(arr));
}
打印结果为h换行e,因为%s遇见’\0’为结束标志
int main()
{
char arr[] = "h\ne\0l\nlo";
printf("%s\n", &arr);
}
END