C语言不规则数组和指针的使用攻略
1. 什么是不规则数组
不规则数组也叫做多维数组,是指列数不一样的一组数组,每一行的长度可以不一样。
2. 如何声明不规则数组
不规则数组的声明方法如下所示:
数据类型数组名[行数][列数];
其中,行数和列数可以是变量或常量,也可以省略列数。
3. 如何初始化不规则数组
不规则数组的初始化方法如下所示:
数据类型 数组名[行数][列数] = {{元素 0, 元素 1, ...}, {元素 0, 元素 1, ...}, ...};
其中,每一行的长度可以不一样,行数和列数可以是变量或常量,也可以省略列数。
4. 如何访问不规则数组
不规则数组的访问方式可以使用下标和指针。
4.1 数组下标访问
使用数组下标访问不规则数组时,首先需要确定要访问的元素在哪一行,然后再确定要访问该行的哪个元素。
数据类型 数组名[行数][列数];
数组名[行下标][列下标];
4.2 指针访问
使用指针访问不规则数组时,需要先定义一个指向该数组的指针,然后通过指针计算要访问的元素的地址。
数据类型 数组名[行数][列数];
数据类型 *指针名 = &数组名[0][0];
*(指针名 + 行下标 * 列数 + 列下标);
5. 不规则数组示例1
#include <stdio.h>
int main()
{
int a[3][4] = {{1, 2, 3}, {4, 5}, {6, 7, 8, 9}};
int i, j;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 4; j++)
{
if (a[i][j])
{
printf("%d ", a[i][j]);
}
}
printf("\n");
}
return 0;
}
在该示例中,我们定义了一个3行4列的不规则数组,其中第一行有3个元素,第二行有2个元素,第三行有4个元素。我们使用嵌套循环对该不规则数组进行遍历,然后输出每个不为0的元素。
6. 不规则数组示例2
#include <stdio.h>
int main()
{
int a[2][3][4] = {
{{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}},
{{13, 14}, {15, 16, 17}, {18}}};
int i, j, k;
for (i = 0; i < 2; i++)
{
for (j = 0; j < 3; j++)
{
for (k = 0; k < 4; k++)
{
if (a[i][j][k])
{
printf("%d ", a[i][j][k]);
}
}
printf("\n");
}
printf("\n");
}
return 0;
}
在该示例中,我们定义了一个234的不规则数组,其中第一层有2个元素,第二层有3个元素,第三层有4个元素。我们使用三重嵌套循环对该不规则数组进行遍历,然后输出每个不为0的元素。需要注意的是,由于第一层元素的个数不相同,因此需要在遍历第二层和第三层时对每个元素的存在进行判断。