C语言中的数组和字符串

C语言中的数组和字符串

一、数组的基本概念

所谓数组,就是按一定顺序排列,具有某种相同性质的同类型变量的集合。这些变量具有相同的名字和数据类型,在内存中顺序排列,并通过下标相互区分,所以也叫下标变量。数组中的各数据项成为元素,用数组名和下标表示。

例如:int   a[5];

分析:这里a是一个基本数据类型int的数组,它由5个元素组成,即:a[0]、a[1]、a[2]、a[3]、a[4]。


二、一维数组

1.一维数组的定义

定义一维数组的形式为:(数据类型    数组名[整型常量表达式];

说明:a.数据类型是数组中全体数组元素的数据类型。

   b.数组名用标识符表示,整型常量表达式代表数组具有的元素个数。

   c.数组元素的下标一律从0开始。

   d.编译程序为数组开辟连续的存储单元,用来顺序存放数组的各数组元素。用数组名表示该数组存储的首地址。

2.一维数组的引用

引用数组元素的形式为:(数组名[下标表达式]

例如:

#include <stdio.h>
int main(void) {
int a[3], k=10;
a[3] = 5;
k = k + 7;
printf("a[3]=%d, k=%d\n", a[3], k);
}

输出:a[3]=12, k=12

分析:因为,a[3]不是a数组的数组元素(下标越界),根据数组元素连续存放的规则,a[3]代表 a[2]的下一个存储单元,即k变量的存储单元。

执行a[3]=5;就是把5存放到k变量的存储单元,于是k的值由10变成5。在执行k=k+7;则k的值由5变成12。因为a[3]和k变量对应同一个存储单元,所以a[3]的

值也是12。

3.一维数组的初始化

一维数组初始化的形式为:(数据类型 数组名[整型常量表达式]={初值1,初值2,......};

注:初始化的数据个数不能超过数组元素的个数,否则出错。

a.只给部分数组元素初始化:static int a[4] = {1, 2};(上述语句只给a[0]、a[1]赋了初值,即a[0] = 1;a[1] = 2;)

static为静态存储,存储类型为static的变量或数组的初值自动设置为0。

4.一维数组的应用

下面程序假定有十个数(要计算100个数的平均值及其大于平均值的数,只需将符号常量N改为100即可):



三、二维数组

1、二维数组的定义

二维数组的定义形式为:(数据类型 数组名[整型常量表达式][整型常量表达式];

例如:int a[2][3];

分析:该语句表示:a.定义了整型二维数组a,其数组元素的类型是int。

b.a数组有2行3列,共2*3=6个元素。

c.a数组行下标为0、1,列下标为0、1、2.

a数组的元素是:a[0][0],a[0][1],a[0][2]

a[1][0],a[1][1],a[1][2]

2、二维数组的引用

引用数组元素的形式为:(数组名[行下标表达式][列下标表达式];

3、二维数组的初始化

二维数组初始化的形式为:(数据类型 数组名[整常量表达式] [整常量表达式]={初始化数据 };

注:可以省略第一维的定义,但不能省略第二维的定义。系统根据初始化的数据个数和第二维的长度可以确定第一维的长度

4、二维数组的应用

输入5个学生的学号和3门课的成绩,求每个学生的平均成绩。输出所有学生的学号、3门课的成绩和平均成绩。



四、字符数组

字符串本身就是数组。

例如:char cCity[10] = "北京";(北京没有用[ ] 所以北京本身就是数组)



                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值