C语言初阶(7)

1.一维数组的创建与初始化

一维数组的创建是格式是

type_t   arr_name  [const_n];

 type-t是数组的数据类型,arr-name是数组名,[]是数组创建的大小,中括号内是常量(在C99语法中可以为变量,但是不能初始化)。

如下面的例子

int arr []={1,2,3,4};
char arr1[]={a,b,c};

数组的初始化和变量的初始化类似

int arr[]={0};

数组还有不完全初始化,数组中第三个位置初始化成0 。

int arr[3]={0,2};

2.一维数组的使用

一维数组在使用时要使用下标进行引用,例如arr[1]。

数组的下标是从0开始。

数组的大小是是可以进行计算,数组的大小可以用sz=sizeof(arr)/sizeof(arr[0])进行计算。

3.数组的地址

数组在内存中的存储是连续存在的。

数组的名字在使用时是数组第一个的地址如果sizeof(arr)那么表示数组的大小, &arr那么表示的是数组的地址(数组的地址一般是以第一个来表示)。如下图

4.二维数组的创建与初始化

二维数组的创建的语法结构是 

type_t   arr_name  [const_n]  [const_n];

二维数组中前一个[]内代表了二维数组中行数,后者代表了二维数组的列数。

二维数组的初始化与一维数组的初始化相似,可以表示成以下的形式

int arr[5] [6]={1,2,3,4,5,6}
int arr[5] [6]={(1,2},{3,4,5},{6}}
int arr[5] [6]={{1,2,3,4,5,6}}

上面第二个就是不完全初始化,其中数组中行数可以省略,列数无法省略,这个是由于一旦省略数组的列数就无法存储和调用二维数组了。

我们可以有以下理解二维数组的的方法

二维数组是两个一维数组 嵌套而成的,我们可以将每一行 构成了一个数组,,而这些数组又构成了二维数组,我们可以理解这些数组是以arr[0][],arr[1][],arr[2][].构成的。这样我们就能理解为什么二维数组为什么不能省略列数,可以省略行数,因为行数相当于一维数组中[].

5.二维数组的使用和存储

二维数组是由arr[2][4]中括号中的·数字来使用的。二维数组的在内存的存储是将按行列依次排成一类,在内存进行存储,同样的也是连续存在的。

6.二维数组的函数名

二位数组的数组名代表了二维数组的一行的地址(以第一个地址来表示)。而&arr代表了整个数组的地址(以第一个地址来代表),sizeof(arr)代表了数组的大小,如下图举例。

 上面还介绍了二维数组怎么求元素个数和求行数和列数。

7.越界访问

越界访问就是在访问数组元素时访问了数组外的元素。

例如下图

8.练习

从大到小进行排序数组内的元素。如下图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值