关于一维数组和二维数组的基本解析

I一、一维数组的定义

要使用数组,必须在程序中先定义数组,即通知计算机;由哪些数据组成数组,数组中有多少元素,属于哪个数据类型。

定义数组的一般形式:

类型符 数组名 [常量表达式]

(1)数组的命名规则和变量名相同,遵循标识符命名规则。

(2)在定义数组时,需要制定数组中元素的个数,方括号中的常量表达式用来表示元素个数,即数组长度。注意,数组的下标是从0开始的。

(3)常量表达式中可以包括常量和符号常量,不能包含变量,即c语言不能对数组的大小做动态定义,即数组的大小不依赖于程序运行过程中变量的值。如果在被调用的函数(不包括主函数)中定义数组,其长度可以是变量或者常量表达式。

二、一维数组的引用

(1)引用数组元素的表示形式为

数组名[下标],下标可以是整形常量或整形表达式

三、一维数组的初始化

(1)为使程序简洁,常在定义数组的同时,给个数组元素赋值,这称为数组的初始化。可以使用初始化列表的方法实现数组的初始化。

(2)在定义数组时对全部数组元素赋予初值

例:int a[10]={0,1,2,3,4,5,6,7,8,9};

(3)可以只给数组中的一部分元素赋值

例:int a=[10]{0,1,2,3,4,5}

(4)如果想使一个数组的全部元素值为0可以写成int a[10]={0};

(5)在对全部元素赋初值时,由于数据的个数已经确定,因此可以不指定数组的长度。

例:int a[5]={1,2,3,4,5};也可以写成int a[]={1,2,3,4,5};

但是如果数组的长度与提供处置的个数不相同,则方括号内的数组长度不能省略。

 

 

 

一维数组举例

#include <stdio.h>

int main()

{

int i;

int f[20]={1,1};

for(i=2;i<20;i++)

f[i]=f[i-2]+f[i-1];

for (i=0;i<20;i++)

{

if (i%5==0)printf(“\n”);

printf(“%12d”,f[i])

}

printf(“\n”);

return 0;

}

四、一维数组的存储

随着数组下标的增加,元素的地址也在有规律的递增,由此可以得出结论:数组在内存中是连续存放的。

五、一维数组的指针访问

指针可以理解为一个变量,一个专门用来存放地址的一个变量。指针其实就是一个指针变量。数组的数组名其实就是数组的首元素的地址,拿到了数组首元素的地址,这样就可以是用指针来访问我们的数组。

 

 

 

 

 

 

 

 

II 二、二维数组的定义

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

类型说明符 数组名[常量表达式][常量表达式]

例如:float a[3][4];即定义了一个3行4列的数组,第一维有3个元素,第二维有6个元素,第三维有9个元素。

2)二维数组的引用

二维数组个一维数组一样通过数组名[下标][下标]的形式引用。

例如 a[3][4]即引用数组a的第3行的第4列的元素。

(3)二维数组的初始化

1、可以使用初始化列表对二维数组初始化

2、分行给二维数组初始化

例如:int a[3][4]={1,2,3,4},{5,6,7,8},{9,10,11,12};

  3、可以将所有数据写在一个花括号内,按数组元素在内存中的排列顺序对各元素赋初值。

例如:int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

 4、可对部分元素赋值

例如:int a[3][4]={{1},{5},{9}};

(4)二维数组的存储

 二维数组个一维数组是一样的,在内存中也是连续存储的。

 5、二维数组的访问和一维数组也是一样的,即拿到数组首元素的地址,用指针进行访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值