c数组

时间:2023-03-09 17:00:33
c数组

一维数组

有三种赋值方式

1.原始的赋值

c数组

2. 初始化赋值

c数组

3.动态赋值

c数组

数组的花式玩法

void main()
{
int a[] = {, , , , , , , , , };
test(a); putchar('\n');
} void test(int b[])
{
int i = ;
for(; i<; i++)
{
printf("%d ", b[i]);
}
}
// 是不是和python的有点类似啊, a就是变量地址, 传的是引用,哈哈

c数组

二维数组

二维数组定义的一般形式为

类型说明符     数组名 【常量表达式】 【常量表达式】

例如: 定义a为3 x 4(3行4列)的数组, b为5x10的数组  如下:

float a【】【】, b【】【】;

分割线:

--------------------------------------------

例如:

int a[][];

说明了一个三行四列的数组, 数组名为a, 其下标变量的类型为整型。

该数组的下标变量共有3x4个,感觉与python的numpy的模块很像

c数组

二维数组的定义:

二维数组在概念上是二维的,但是,实际的硬件存储器却是连续编址的, 也

就是说存储器单元是按一维线性排序的。

如何在一维存储器中存放二维数组, 可有两种方法:一种是按行排列, 即放完一行之后顺次放入

第二行。另一种是按列排列, 即放完一列之后在顺次放入第二列。在c语言中, 二维数组是按行排列的。

c数组

c数组

那么三维的如何排序呢?

c数组

二维数组元素的引用和初始化

c数组

c数组

c数组

void main()
{
int a[][] = {{, , },{, , },{,,},{,,},{,,}};
int i,j;
for (i=;i<=;i++)
{
for (j=;j<=;j++) //注意这里, 【3】就是三个值, 所以是0-2
{
printf("%d\n", a[i][j]);
}
//这个是得到每行的每个值,如果需要处理的话,需要第三个值 sum += a[i][j]
//如果需要得到每列的值呢,就for 2 for 4 a[1][1] , a[2][1]
}
}

二维数组的元素互换

将一个二维数组行和列元素互换, 存到另一个二维数组中。例如:

将数组a[2][3]转化为数组b[3][2]

c数组

void main()
{
int a[][] = {{, , },{, , }};
int b[][], i, j;
for (i=;i<=;i++)
{
for (j=;j<=;j++)
{
printf("%d", a[i][j]);
b[j][i] = a[i][j];
}
printf("\n");
}
printf("-------------");
for (i=;i<=;i++)
{
for (j=;j<=;j++)
{
printf("%d", b[i][j]);
}
printf("\n");
}
}

c数组