数组初始化的方法主要有 { } 和 " "两种, 那么两者的使用对象有什么区别,什么时候去使用呢?
一. { } 主要用来初始化数字
int arr[5] = {1,2,3,4,5}; //初始化与下标相同, 完全初始化.
int arr[5] = {1,2,3}; //剩余未初始化部分用零0补充, 不完全初始化
int arr[] = {1,2,3,4,5};//没有下标的初始化,根据初始化的确定个数,
//如这里元素个数为5,数组下标也为5,等同于1数组
int arr[10] = {0};//全部初始化为0
{ }也能初识化字符.
char arr[] = {'a', 'b', 'c'};// 元素个数3,abc
// { }内初始化字符串要借助单引号''的力量
char arr[5] = {'a', 'b', 'c'};//元素个数5, abc\0\0.不足用零补充. \0的ASCII码值就为0
char arr[5] = {'a', 98, 'c'};
二." "主要用来初始化字符串
" "之间的所有内容便是存储的元素
char arr[10] = "1,2,3,4,5"; // 元素有10个 1,2,3,4,5 \0
char arr[] = "123"; // 4个元素, 1 2 3 \0
char arr[6] = "abcd"; // 6个元素,a b c d \0 0
char arr[] = "abcd"; // 5个元素,a b c d \0
注意: 字符串初始化,数组数据类型必须是char,字符类型.
三.两种方法字符串初始化的区别
(一)存储元素不同
char arr1[] = "abc"; // a b c \0
char arr2[] = {'a','b','c'}; // a b c
(二)打印结果不同
bit
bit烫烫烫烫it
printf("%s", arr1),这是因为%s时只有遇到\0才会停止读取,否则一直往后读取,直到遇见\0
同样,计算字符串长度strlen(arr1)与strlen(arr2)也有同样的差别.
数组长度与字符串长度是两个不同的东西