1.一维数组的创建和初始化
int main()
{
// int arr1[10];
int n = 0;
scanf("%d",&n);
//int count = 10;
int arr2[n]; //局部的变量,这些局部的变量或者数组是存放在栈区的,存放在栈区上的数组,如果不初始化的话,默认是随机值
// VS2019 VS2022 这样的IDE 不支持C99种的变长数组
//C99 标准之前,数组的大小只能是常量表达式
//C99 标准中引入了:变长数组的概念,使得数组在创建的时候可以使用变量,但是这样的数组不能初始化
int i = 0;
for(i=0;i<n;i++)
{
printf("%d\n", arr2[i]);
}
// char arr3[10];
// float arrt[10];
// double arr5[20];
return 0;
}
//数组的初始化
//数组的初始化上指,在创建数组的同时给数组的内容一些合理初始值(初始化)
int main()
{
// int arr1[10] = {1,2,3,4,5,6,7,8,9,10}; //完全初始化
// int arr2[10] = {1,2,3}; //不完全初始化
// int arr4[10] = {0};//不完全初始化,剩余的元素默认都是0
// int arr3[] = {}; //省略数组大小,数组必须初始化,数组的大小上根据初始化内容来定的
// int arr5[] = {1,2,3};
// //int arr6[]; //err
char arr[] = "abc"; // a b c \0
char arr2[] = {'a','b','c'}; // a b c
char arr3[] = {'a',98,'c'}; // a 98=b c
return 0;
}
2.一维数组的使用
int main()
{
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
// 0,1,2,3,4,5,6,7,8,9
//printf("%d\n",arr[5]); //[]下标引用操作符
//printf("%d\n",arr[0]); //[]下标引用操作符
int i = 0;
int sz = sizeof(arr) / sizeof(arr[0]); //计算数组大小
for(i = 0;i<sz;i++)
{
scanf("%d",&arr[i]);
}
for(i = 0;i<sz;i++)
//for(i=0;i < sz;i += 2)
//for(i = sz; i>=0; i--)
{
printf("%d\n",arr[i]);
}
return 0;
}
int main()
{
int arr[10] = {}; //10 * 4
printf("%d\n",sizeof(arr)); //40-计算的是数组的总大小,单位是字节
printf("%d\n",sizeof(arr[0])); //4
int sz = sizeof(arr) / sizeof(arr[0]); //计算数组元素个数的方法
printf("%d\n",sz);
return 0;
}
3.一维数组在内存中的存储
//一维数组在内存中存储
int main()
{
int arr[10] = {1,2,3,4,5};
int sz = sizeof(arr) / sizeof(arr[0]);
int i =0;
for(i = 0;i < sz;i++)
{
printf("&arr[%d] = %p\n",i,&arr[i]);
}
return 0;
}
4.二维数组的创建和初始化
5.二维数组的使用
6.二维数组在内存中的存储
7.数组越界
8.数组作为函数参数