显式初始化数组元素
当显式地初始化数组元素时,如果提供的维度比初始值数量大,那么剩下的元素会被初始化为默认值。1
2
3
4
5
6
7
8
9
10
11
12
13
14int a[10] = {1 , 2 , 3}; //默认值为0
char a2[10] = "lzc"; //默认值为'\0'
string a3[10] = {"lzc" , "hello" , "world"}; // 默认值为""
for(auto i : a2){
cout<<(i == '\0');
}
cout<<endl;
for(auto i : a){
cout<<i;
}
cout<<endl;
for(auto i : a3){
cout<<(i == "");
}
当显式地用字面值初始化字符数组时,要注意:1
2
3
4
5
6char a[] = "lzc"; //结尾有'\0'
char a1[] = {'l' , 'z' , 'c'}; //结尾没有'\0'
char a2[] = {'l' , 'z' , 'c' , '\0'};
char a3[3] = "lzc"; // 错误的,最小是4才能容得下
cout<<(a[3] == '\0')<<endl;
cout<<(a1[3] == '\0')<<endl; //结果虽然是0,但是a1[3]时不存在的
复杂数组的声明
1 | int *p[10]; //p是容量为10的数组,里面的元素为整形指针(可以从右向左理解) |
访问数组元素
使用下标访问
当使用下标时,通常将其定义 为size_t类型,size_t是一个无符号类型。
使用begin和end
1 | int a[] = {1 , 2 , 3 , 4 , 5}; |
用string初始化char数组
1 | string s = "13213123"; |
用数组初始化vector
1 | int arr[] = {1 , 2 , 3 , 4 , 5}; |
