C语言-数组
1 -定义数组:
char arr[5];
int arr[5];
double arr[5];
float arr[5];
// 下面的都是正确写法:
int a[5]; // 整型常量
int b['A']; // 字符常量,其实就是65
int c[3*4]; // 整型常量表达式
[]里面的个数必须是一个固定值,可以是常量(比如6、8)、常量表达式(比如3+4、5*7)。绝对不能使用变量或者变量表达式来表示元素个数,大多数情况下不要省略元素个数(当数组作为函数的形参和数组初始化时除外)
2 - 数组的初始化
// 数组定义时可以不初如化,例如,
char arr[5];
// 数组也可以初始化,例如,
char arr[5] = {90,91,92,93,94};
// 也可以只初始化一部分元素:
char arr[5] = {90,91};
// 数组初始化时的赋值方式只能用于数组的定义,定义之后只能一个元素一个元素地赋值
// 下面的写法是错误的:
int a[3];
a[3] = {1, 2, 3}; // 错误
a = {1, 2, 3}; // 错误
要注意的是,数组名代表着整个数组的地址,也就是数组的起始地址。
3 - 访问数组
char arr[5] = {90,91,92,93,94 };
char s1 = arr[0];
char s2 = arr[1];
// 改变数组中元素的值
arr[1] = 89;
4 - 数组作为函数实参
我们知道,数组名代表着整个数组的地址,如果一维数组的名字作为函数实参,传递的是整个数组,即形参数组和实参数组完全等同,是存放在同一存储空间的同一个数组。这样形参数组修改时,实参数组也同时被修改了
二维数组
// 二维数组初始化
char arr[5][3] =
{
{ 91, 92, 93 }, // 每一行以逗号分隔
{ 81, 82, 83 }, // 每一行以逗号分隔
{ 71, 72, 73 }, // 每一行以逗号分隔
{ 61, 62, 63 }, // 每一行以逗号分隔
{ 51, 52, 53 }, // 每一行以逗号分隔
};
// 二维数组的访问
// 访问元素的方法:
arr[0][0]; // 第0行第0列
arr[m][n]; // 第m行第n列
// 注:下标从0开始
一维数组最重要,二维数组或高维数组极少被使用!










网友评论