文章目录
1 一维数组的创建和初始化
1.1 数组的创建
使用type_t arr_name[const_n]
创建数组
type_t
是类型
,const_n
是常量表达式
int arr[10];
char arr2[10];
double arr3[5];
double arr4[2+3];
- C99支持
变长数组
,OJ也支持,但VS19,22不支持
1.2 数组的初始化
创建数组
的同时初始化
数组
- 指定大小的不完全初始化
int arr[10] = {
1};//第一个元素初始化为1,其余的元素默认初始化为0
char ch1[10] = {
'a','b','c'};//a b c 0 0 0 0 0 0 0
char ch2[10] = "abc"; //a b c 0 0 0 0 0 0 0
注意"abc"
指定了a,b,c,\0
四个字符,{ 'a','b','c'}
只有三个.其余全是\0
.因为[10]
.
char ch3[] = "abc";
char ch4[] = {
'a', 'b', 'c' };
char ch5[10] = "abc";
注意ch3
大小4,ch4
大小3.
97是a,0就是\0. 注意'0'是字符零,ASCII码是48
- 禁止数组
越界
Run-Time Check Failure #2 - Stack around the variable 'arr' was corrupted.
//char arr[] = "";
//scanf("%s", arr);
//printf("%s\n", arr);
int arr[] = {
0 };//1
int i = 0;
for (i = 0; i < 10; i++)
{
arr[i] = i;
}
1.3 数组的使用
通过下标引用[]
访问数组元素
int main()
{
int arr[20] = {
1,2,3,4,5,6,7,8,9,10,11,12 };
//0~9
int i = 0;
int sz = sizeof(arr) / sizeof(arr[0]);
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);//arr[i]表示数组的一个元素,而不是创建数组
}
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 0 0 0 0 0 0 0 0