C语言程序设计(第四版)第八章主要内容

本章主要讲述了<数组和算法基础>

一、一维数组的定义和初始化

1.数组是一组具有相同类型的变量的集合,它是一种顺序存储、随机访问的顺序表结构。

2.一维数组形式:

例如int score[5]

int代表数组的基类型,score代表数组名,[5]代表有5个元素。

注意:C语言中数组的下标都是从0开始的。

3.C89规定在定义数组时不能使用变量定义数组的大小。

4.当数组在所有函数外定义,或使用static定义为静态存储类型时,即使不给数组元素赋初值,那么数组元素也会自动初始化为0。

二、二维数组的定义和初始化

1.二维数组的一般定义格式为:

类型  数组名[第一维长度][第二维长度];

2.一维数组在内存中占用的字节数为:数组长度Xsizeof(基类型);

二维数组占用的字节数为:第一维长度X第二维长度Xsizeof(基类型)。

注意:在不同编译系统中,int型所占的字节数是不同的。

3.对于二维数组既可以按元素初始化,也可以按行初始化。

4.当初始化列表给出数组全部元素的初值时,第一维的长度声明可以省略,此时,系统将按初始化列表中提供的初值个数来定义数组的大小。

5.按行初始化时,即使初始化列表中提供的初始个数可以少于数组元素的个数,第一维的长度声明也可以省略,此时系统自动给后面的元素初始化为0。

注意:数组第二维的长度声明永远都不能省略。

三、向函数传递一维数组

1.若要把一个数组传递给一个函数,那么只要使用不带方括号的数组名作为函数实参调用函数即可。

2.由于数组名代表数组第一个元素的地址,因此用数组名作函数实参实际上是将数组的首地址传给被调函数。

注意:数组作函数形参时,数组的长度可以不出现在数组名后面的方括号内,通常用另一个整型形参来指定数组的长度。

四、排序和查找

1.

622fcc24f5564ad99cfc99c301493ef8.jpg

 2.

78f0f3199ef2436a80a613331b473d0d.jpg

 3.

c5c48d25a06644b48613ad9953a35bad.jpg

 

4.用数组名作为函数参数时,需要注意以下3点:

(1)声明一维形参数组时,在方括号内可以给出数组的长度(声明为固定长度数组);也可以不给出数组的长度(声明为可变长度数组)。这时一般用另一个整型形参给定数组的长度。

(2)用数组名作为函数实参时,形参数组和实参数组既可同名,也可不同名。因它们的名字代表的是数组的首地址,所以经过“由实参向形参单向值传递”后,它们都指向了内存中的同一段连续的存储单元。而用简单变量作为函数实参时,由实参向形参单向传递的是变量的内容,不是变量的地址,因此无论它们是否同名,它们都代表内存中不同的存储单元。

(3)在被调函数中改变形参数组元素值时,实参数组元素值也会随之改变。这种改变并不是形参反向传给实参造成的,而是形参和实参因具有同一地址,共享同一段内存单元造成的。

五、向函数传递二维数组

1.形参被声明为一维数组时,形参列表中数组的方括号内可以为空。然而当形参被声明为二维数组时,可以省略数组第一维的长度声明,但不能省略数组第二维的长度声明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值