C语言学习笔记8

数组:

数组是一个由若干同类型变量组成的集合,引用这些变量可以使用同一个名字。数组均由连续的存储单元组成,最低地址对应与数组的第一个元素,最高地址对应于最后一个元素,数组可以是一维数组,也可以是多维数组。

一维数组:

一维数组适用于存储一维数列中数据的集合。

定义:

类型说明符 数组标识符[常量表达式];

类型说明符表示数组中的所有元素的类型。

数组标识符表示该数组型变量的名称,命名规则与变量名一致。

常量表达式定义了数组中存放的数据元素的个数,即数组长度。

注意:

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

在定义数组时,需要指定数组中元素的个数,方括号中的常量表达式用来表示元素的个数,即数组长度。例如,student[10],表示数组 student[] 有 10 个元素。

下标是从 0 开始的,这 10 个元素分别是student[0]...student[9]。

常量表达式中可以包括常量和符号变量,如“int a[4*2]”是合法的。

引用:

表示形式如下:

数组标识符[下标]

例如,引用数组变量a中的第3个元素:a[2];

a是数组变量的名称,2为数组的下标。数组下标从0开始。

习题:创建一个数组,保存用户手机号。代码如下:

一维数组初始化:

C语言中的数组初始化是有三种形式的。

1、 数据类型 数组名称[长度n] = {元素1,元素2…元素n};

2、 数据类型 数组名称[] = {元素1,元素2…元素n};

3、 数据类型 数组名称[长度n]; 数组名称[0] = 元素1; 数组名称[1] = 元素2; 数组名称[n-1] = 元素n;

注意:

1、数组的下标均以0开始;

2、数组在初始化的时候,数组内元素的个数不能大于声明的数组长度;

3、如果采用第一种初始化方式,元素个数小于数组的长度时,多余的数组元素初始化为0;

4、在声明数组后没有进行初始化的时候,静态(static)和外部(extern)类型的数组元素初始化元素为0,自动(auto)类型的数组的元素初始化值不确定。

数组的遍历:

在程序中,数组就可以采用循环的方式将每个元素遍历出来,而不用人为的每次获取指定某个位置上的元素,例如我们用for循环遍历一个数组:

数组遍历时要注意以下几点:

1、最好避免出现数组越界访问,循环变量最好不要超出数组的长度,比如:

2、C语言的数组长度一经声明,长度就是固定,无法改变,并且C语言并不提供计算数组长度的方法。

3、由于C语言是没有检查数组长度改变或者数组越界的这个机制,可能会在编辑器中编译并通过,但是结果就不能肯定了,因此还是不要越界或者改变数组的长度。

习题:某记分员记录了球员在10场篮球比赛中的成绩,输入数据后,求平均成绩。代码如下:

二维数组:

二维数组的根本意义就是一维数组的数组,二维数组的第一位就是数据的起始地址,第二位就是某个数据中的某个值。

二维数组的定义:

二维数组的定义与一维数组相同,形式如下:

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

其中,“常量表达式1”被称为行下标,“常量表达式2”被称为列下标。如果有二维数组array[n][m],则二维数组的下标取值范围如下:

行下标的取值范围0-n-1。

列下标的取值范围0-m-1。

二维数组的最大下标元素是array[n-1][m-1]。

引用:

二维数组的引用形式如下:

数组名[下标][下标];

二维数组的下标可以是整型常量或整形表达式。

注意:不管是行下标还是列下标,其索引都是从0开始的。

二维数组的初始化:

分行给二维数组赋初值。例如:

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

把第一个花括号的值给第 0 行元素,第 2 个花括号的值给第一行元素....

可以将所有的数据放在一个花括号内,例如:

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

可以对部分元素赋初值。例如:

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

它的作用是只给各行第 0 列的元素赋初值,其他元素默认为 0。赋初值后的结果为:

1 0 0 0
3 0 0 0
5 0 0 0

在给二维数组赋初值时,有下列4中情况:

1、可以将所有数据写在一个大括号内,按照数组元素排列顺序对元素赋值。例如:

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

如果大括号内的数据少于数组元素的个数,则系统默认将后面未被赋值的元素设置为0。

2、在为所有元素赋初值时,可以省略行下标,但是不能省略列下标。例如

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

系统会根据数据的个数进行分配,一共有6个数据,而数组每行分为3列,当然可以确定数组为2行。

3、也可以分行给数组元素赋值。例如:

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

在分行赋值时,可以只对部分元素赋值,例如:

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

如果只给一部分元素赋初值,则未赋值的部分元素值为0.

4、二维数组也可以直接对数组元素赋值。例如:

int a[2][3];

a[0][0]=1;

a[0][1]=2;

习题:利用二维数组输出坐标。代码如下:

 

转载于:https://www.cnblogs.com/www-bokeyuan-com/p/11174222.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值