1.一维数组的创建和初始化
int main()
{
//一组 相同数据类型 的元素的集合
//int arr[100];
int arr1[10] = { 1,2,3,4,5,6,7,8,9,10 };
int arr2[100] = { 0 };
return 0;
}
int n=10;
int arr[n];
c99中引入了变长数组的概念,数组的大小可以用变量表示。只要编译器支持c99,就可以使用
vs2019是不支持变长数组的。
const修饰的n是常变量,本质上还是变量
const int n=10不行。
不完全初始化:后面默认初始化为0
//变长数组不能初始化
static int b; //static也是初始化为0
int a; //全局变量,不初始化的时候,默认为0
只是在创建数组的时候不能用变量。 在打印或者赋值的时候可以用arr[i]
3.一维数组在内存中的存储

能用指针打印地址的原因:数组在内存中是连续存放的:由低地址向高地址
p+1加了4个字节
%p - 打印地址(16)进制
%d - 打印整数(10)进制
4.二维数组的创建和初始化
创建:例如arr[3][5]可以认为是一个创建一个3行5列的int型的空间。

初始化,两种不同的初始化方式:

5.二位数组的访问:
int main()
{
int arr[][5]= { {1,2},{3,4},{5,6} };
int i = 0;
for (i = 0; i < 3; i++)
{
int j = 0;
for (j = 0; j < 5; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
6.二维数组在内存中的存储:

二维数组在内存中也是连续的:

可以理解成:一维数组的数组
7.数组越界
数组规定从0开始,到n-1结束,小于0或者大于n-1都会被判定为越界的。
本文介绍了C语言中数组的创建与使用,包括一维数组的初始化、变长数组的概念以及二维数组的创建和初始化。讨论了数组在内存中的存储方式,以及如何避免数组越界的问题。

被折叠的 条评论
为什么被折叠?



