【笔记】C语言的数组与字符串

前言

C语言的数组与字符串学习笔记

数组的特点

  • 数组下标从0开始
  • 数组所有成员在内存中是连续的
  • 数组所有成员的数据类型相同
  • 数组名在C语言中实际上是数组第一个元素的地址常量

一维数组

定义数组

  • 定义数组时直接定义数组长度
1
数据类型 变量名[数组长度];

数组初始化

1
数据类型 变量名[数组长度] = { 数据, 数据, ... };
  • 这种情况下如果数据的长度没有达到数组长度,其他后续的下标位置的元素都为默认值(int类型的默认值为0)

初始化为默认值

1
int 变量名[数组长度] = { 0 };

通过数据定义长度

  • 这是一种省略的写法,编译器在编译时会加上数组长度
1
数据类型 变量名[] = { 数据, 数据, ... };

修改数组的数据

  • 修改数组指定下标的数据
1
变量名[下标] = 数据;

遍历数组

sizeof(数组名):数组整体大小
sizeof(数组名[0]):数组一个成员的大小
sizeof(数组名)/sizeof(数组名[0]):数组成员个数

1
2
3
4
5
int i;
for (i = 0; i < sizeof(数组名)/sizeof(数组名[0]); i++)
{
...
}

二维数组

定义数组

1
数据类型 变量名[数组长度][数组长度];

数组初始化

1
数据类型 变量名[数组长度][数组长度] = { { 数据, 数据, ... }, { 数据, 数据, ... }, ... };
  • 这种情况下如果数据的长度没有达到数组长度,其他后续的下标位置的元素都为默认值(int类型的默认值
    为0

初始化为默认值

1
int 变量名[数组长度][数组长度] = { 0 };

通过数据定义长度

  • 这是一种省略的写法,编译器在编译时会加上数组长度
1
数据类型 变量名[][数组长度] = { { 数据, 数据, ... }, { 数据, 数据, ... }, ... };

修改数组数据

1
变量名[数组下标][数组下标] = 数据;

遍历数组

1
2
3
4
5
6
7
8
int i, j;
for (i = 0; i < sizeof(数组名)/sizeof(数组名[0]); i++)
{
for (j = 0; j < sizeof(数组名[0])/sizeof(数组名[0][0]); j++)
{
...
}
}

完成