c语言数组重要性,C语言基础面面观之数组

相信学过C语言的同学都知道数组的重要性,那么对于初学者来说数组到底意味着什么呢?它的作用又是什么呢?不用担心,下面课课家笔者就为大家详细介绍C语言中的数组概念和作用。

所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。下面笔者给大家举了一个例子,此次是输出一个4×4的整数矩阵,具体代码如下:

#include

#include

int main()

{

int a1 = 20, a2 = 345, a3 = 700, a4 = 22;

int b1 = 56720, b2 = 9999, b3 = 20098, b4 = 2;

int c1 = 233, c2 = 205, c3 = 1, c4 = 6666;

int d1 = 34, d2 = 0, d3 = 23, d4 = 23006783;

printf("%-9d%-9d%-9d%-9d\\n",a1,a2,a3,a4);

printf("%-9d%-9d%-9d%-9d\\n",b1,b2,b3,b4);

printf("%-9d%-9d%-9d%-9d\\n",c1,c2,c3,c4);

printf("%-9d%-9d%-9d%-9d\\n",d1,d2,d3,d4);

system("pause");

return 0;

}

运行结果:

2034570022

567209999200982

23320516666

3402323006783

矩阵共有16个整数,我们为每个整数定义了一个变量,也就是16个变量。为了减少变量的数量让开发更有效率,我们其实可以通过把每一行的整数放在一个变量里面,或者把16个整数全部都放在一个变量里面。我们知道要想把数据放入内存,必须先要分配内存空间,比如放入4个整数,就得分配4个int类型的内存空间:int a[4];这样就在内存中分配了4个int类型的内存空间,共4×4=16个字节,并为它们起了一个名字,叫a。我们把这样的一组数据的集合称为数组(Array),它所包含的每一个数据叫做数组元素(Element),所包含的数据的个数称为数组长度(Length),比如int a[4];就定义了一个长度为4的整型数组,名字是a。数组中的每个元素都有一个序号,这个序号从0开始,而不是从我们熟悉的1开始,称为下标(Index)。使用数组元素时,指明下标即可,形式为:array Name[index]array Name为数组名称,index为下标。比如,a[0]表示第0个元素,a[3]表示第3个元素。接下来我们就把第一行的4个整数放入数组:

a[0]=20;

a[1]=345;

a[2]=700;

a[3]=22;

这里的0、1、2、3就是数组下标,a[0]、a[1]、a[2]、a[3]就是数组元素。接下来我们来总结一下数组的定义方式:

data Type array Name[length];

dataType为数据类型,array Name为数组名称,length为数组长度。比如:

float m[12];

char ch[9];

另外这里我们需要注意4点,具体为:

①数组中每个元素的数据类型必须相同,对于inta[4];,每个元素都必须为int。

②数组长度length最好是整数或者常量表达式,比如10、20*4等,这样在所有编译器下都能运行通过;如果length中包含了变量,比如n、4*m等,在某些编译器下就会报错。

③访问数组元素时,下标的取值范围为0≤index

④数组是一个整体,它的内存是连续的,下面是int a[4];的内存示意图(图1):

08600df25601e6c8f25f08bcf134baa7.png

图1

◎数组的初始化

在上面的代码中我们是先定义数组再给数组赋值,其实我们也可以在定义数组的同时赋值:

int a[4]={20,345,700,22};

{}中的值即为各元素的初值,各值之间用,间隔。

对数组赋初值需要注意以下几点:

①可以只给部分元素赋初值。当{}中值的个数少于元素个数时,只给前面部分元素赋值。比如:

int a[10]={12,19,22,993,344};

以上例子代码表示只给a[0]~a[4]5个元素赋值,而后面5个元素自动赋0值。

当赋值的元素少于数组总体元素的时候,剩余的元素自动初始化为0:对于short、int、long,就是整数0;对于char,就是字符'\\0';对于float、double,就是小数0.0。

我们可以通过下面的形式将数组的所有元素初始化为0:

int a[10]={0};

char c[10]={0};

float f[10]={0};

由于剩余的元素会自动初始化为0,所以只需要给第0个元素赋0值即可。具体示例:输出数组元素。

#include

int main()

{

int a[6]={299,34,92,100};

int b[6],i;

//从控制台输入数据为每个元素赋值

for(i=0;i<6;i++){

scanf("%d",&b[i]);

}

//输出数组元素

for(i=0;i<6;i++){

printf("%d",a[i]);

}

putchar('\\n');

for(i=0;i<6;i++){

printf("%d",b[i]);

}

putchar('\\n');

return 0;

}

运行结果:

90100332256810

299349210000

90100332256810

②只能给元素逐个赋值,不能给数组整体赋值。比如给十个元素全部赋1值,具体只能写为:

int a[10]={1,1,1,1,1,1,1,1,1,1};

而不能写为:

int a[10]=1;

③如给全部元素赋值,那么在数组定义时可以不给出数组的长度。比如:

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

等价于

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

最后,我们借助数组来输出一个4×4的矩阵:

#include

#include

int main()

{

int a[4]={20,345,700,22};

int b[4]={56720,9999,20098,2};

int c[4]={233,205,1,6666};

int d[4]={34,0,23,23006783};

printf("%-9d%-9d%-9d%-9d\\n",a[0],a[1],a[2],a[3]);

printf("%-9d%-9d%-9d%-9d\\n",b[0],b[1],b[2],b[3]);

printf("%-9d%-9d%-9d%-9d\\n",c[0],c[1],c[2],c[3]);

printf("%-9d%-9d%-9d%-9d\\n",d[0],d[1],d[2],d[3]);

system("pause");

return 0;

}

本次C语言基础面面观之数组的教程到此就暂告一段落了,如果以后有补充的话笔者会继续在此补充,同时也欢迎大家的继续补充。最后希望这次的教程对大家学习C语言能够起到一定的帮助作用!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值