【C语言】数组

目录

前言

一维数组的创建

一维数组的初始化 

完全初始化

不完全初始化 

一维数组的内存 

二维数组的创建 和初始化

二维数组的使用 

二维数组的内存

使用数组时要注意的事项 

 数组越界问题

数组名的问题

总结


前言

我们希望能够将很多值存起来,这样就能避免出现要用某一个值便创建某一个变量的麻烦情况,这便需要用到数组了。

一维数组的创建

数组是同类型元素的集合。

注意:

一、在c99标准之前,const_n只能是常量,c99标准支持“变长数组”这个概念,允许使用变量来作为const_n,但变长数组不能在创建时初始化。 

二、数组通过下标来访问元素,并且下标从零开始。

type_t   arr_name   [const_n];
//type_t 是指数组的元素类型
//const_n 是一个常量表达式,用来指定数组的大小

一维数组的初始化 

一维数组的初始化是指,在创建该数组时,给数组一些合理的值。

数组的初始化分为完全初始化和不完全初始化两种。

完全初始化

初始化整个数组。

int arr[10] = {1,2,3,4,5,6,7,8,9,10};

不完全初始化 

初始化一部分元素

int arr[10] = {1,2,3,4,5};

一维数组的内存 

一维数组的内存时连续存放的,并且地址是从低地址向高地址储存,这也是为什么能通过下标访问的原因。

 

二维数组的创建 和初始化

两个【】分别代表行数和列数,其中行数可以省略,但列数不能省略,这是因为二维数组能根据列数的大小来生成行数。

初始化和一维数组一模一样。

//数组创建
int arr[3][4];
char arr[3][5];
double arr[2][4];

二维数组的使用 

和一维数组一样,都是通过下标来访问元素。

二维数组的内存

一样是连续分布的,并且同样是由低地址向高地址分布,可以将二位数组看做是:元素是一维数组的一维数组。

 

使用数组时要注意的事项 

 数组越界问题

一、数组的下标是有范围限制的。
二、数组的下规定是从 0 开始的,如果数组有 n 个元素,最后一个元素的下标就是 n-1
三、所以数组的下标如果小于 0 ,或者大于 n-1 ,就是数组越界访问了,超出了数组合法空间的访问。
四、C 语言本身是不做数组下标的越界检查,编译器也不一定报错,但是编译器不报错,并不意味着程序就 是正确的, 所以程序员写代码时,最好自己做越界的检查。

数组名的问题

数组名就是数组首元素地址,但有两种特殊情况。

一、将数组名作为sizeof()括号中的内容,此时的数组名代表着整个数组。

二、&数组名是,这时取出来的是整个数组的地址,&数组名+1是跳过整个数组,数组名+1是跳过首元素。

总结

介绍了数组的概念,一维数组的创建、一维数组的初始化、一维数组的使用、二位数组的创建、二维数组的初始化、二维数组的使用、使用数组时的注意事项、数组名的含义。

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值