开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第10天,点击查看活动详情
C 多维数组
C 语言支持多维数组。多维数组声明的一般形式如下:
type name[size1][size2]...[sizeN];
例如,下面的声明创建了一个三维 5 . 6 . 4 整型数组:
int threedim[5][6][4];
二维数组
多维数组最简单的形式是二维数组。一个二维数组,在本质上,是一个一维数组的列表。声明一个 x 行 y 列的二维整型数组.
type z [ x ][ y ];
type 可以是任意有效的 C 数据类型,arrayName 是一个有效的 C 标识符。一个二维数组可以被认为是一个带有 x 行和 y 列的表格。下面是一个二维数组,包含 3 行和 4 列:
int x[3][4];
初始化二维数组
多维数组可以通过在括号内为每行指定值来进行初始化。下面是一个带有 3 行 4 列的数组
int a[3][4] = {
{0, 1, 2, 3} ,
{4, 5, 6, 7} ,
{8, 9, 10, 11}
};
内部嵌套的括号是可选的
int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};
访问二维数组元素
二维数组中的元素是通过使用下标
int x = a[2][3];
获取数组中第 3 行第 4 个元素
#include <stdio.h>
int main ()
{
int a[5][2] = { {0,0}, {1,2}, {2,4}, {3,6},{4,8}};
int i, j;
for ( i = 0; i < 5; i++ )
{
for ( j = 0; j < 2; j++ )
{
printf("a[%d][%d] = %d\n", i,j, a[i][j] );
}
}
return 0;
}
a[0][0] = 0
a[0][1] = 0
a[1][0] = 1
a[1][1] = 2
a[2][0] = 2
a[2][1] = 4
a[3][0] = 3
a[3][1] = 6
a[4][0] = 4
a[4][1] = 8
C 指针
概念引入 为了说清楚什么是指针,必须先弄清楚数据在内存中是如何存储的,又是如何读取的。如果在程序中定义了一个变量,在对程序进行编译时,系统就会给这个变量分配内存单元。编译系统根据程序中定义的变量类型,分配一定长度的空间。内存区的每一个字节有一个编号,这就是“地址”,它相对于旅馆中的房间号。在地址所标志的内存单元中存放的数据则相当于旅馆中居住的旅客。 直接访问 如果有语句 k = i + j;则从 2000 ~ 2003 字节取出 i 的值,再从 2004 ~ 2007字节取出 j 的值,将它们相加后再将其和送到所占用的 2008 ~ 2011 字节单元中。这种直接按变量名进行的访问称为 “直接访问” 方式。
间接访问 还可以采用另一种称为 “间接访问” 的方式,即将变量 i 的地址存放在另一变量中,然后通过该变量来找到变量 i 的地址,从而访问 i 变量。