ad

《C++程序开发案例课堂》_了解C++的更好途径_7.3 数组与函数

admin 67 2023-11-01

【摘要】 本书摘自《C++程序开发案例课堂》一书中第7章,第3节,由刘春茂、李琪编著。

7.3 数组与函数

《C++程序开发案例课堂》_了解C++的更好途径_7.3 数组与函数

数组是否可以作为一个函数的参数呢?下面进行相关介绍。

7.3.1 一维数组作为函数的参数

数组作为函数的参数,难点和重点都在于以下两点。

(1)理解函数参数的两种传递方式——传值与传址之间的区别

(2)数组变量本身就是内存地址。

关于函数的参数传递方式,在上一章明确讲过,在传值方式下,传的只是实参的复制品 (值一样);在传址方式下,传的是实参本身。

那么数组作为函数的参数时,是采用什么传址方式呢?在 C/C+ 中,如果函数的参数是 数组,则该参数固定为传址方式。

在数组参数里,看不到“&”,似乎这应该是一个"传值"方式的参数。但是,数组作 为参数,则固定是以传址方式将数组本身传给函数,而不是传数组的复制品。

下面就通过一个实例来说明这种情况。

【例7-5】一维数组作为函数参数(代码7-5.txt)。

【代码剖析】

在这个例子中,定义了 func 函数,该函数的参数是一个 int 型数组,在该函数中对参数 进行了初始化,分别赋值0~5。在主程序中,首先定义一个 int 型数组,接下来调用 func 函 数,将定义的数组a 作为参数输入;使用for循环将定义的数组输出。

运行结果如图7-5所示。

从结果来看,输出的是“0,1,2,3,4,5,”。这证明数组 a 传给 func之后,被 func 函数修改 了,并且改的是数组a 本身,而不是数组a 的复制品。

7.3.2 传 送 多 维 数 组 到 函 数

函数参数也可以是二维及更高维数组,但必须指定除最高维以后的各维大小。这一点和 初始化时可以省略最高维大小的规则是一致的。

【例7-6】多维数组传到函数(代码7-6.txt)。

【代码剖析】

在这个例子中,定义了函数 func,该函数的参数是一个 int型二维数组,在该函数中,对 函数的参数进行了初始化,每个元素的值都是它维数的和。在主程序中,首先定义一个 int型 二维数组,接下来调用函数func, 将定义的数组a 作为参数输入;使用 for 双重循环,将定义 的数组输出。

运行结果如图7-6所示。

从整个示例来看,正确地输出了结果。将多维数组传递到函数中,其实和一维数组运行过 程是相同的。7.4 字 符 串 类

在 C 中,并没有字符串这个数据类型,字符串实际上就是一个以 null('O')字符结尾的字 符数组, null字符表示字符串的结束。

在 C++ 中把字符串封装成了一种数据类型 string, 可以直接声明变量并进行赋值等字符串 操作。

7.4.1 字符串的声明

字符型数组即数组中的每一个元素是字符。在 C++ 语言中,字符型数组的应用很多。字 符型数组用来存放字符串(没有字符串变量),字符串以10'为结束标志。

定义如下:

:char a[10];

此时定义了一个包含10个字符元素的字符型数组。

7.4.2 字符串的输入和输出

下面介绍字符串的输入和输出。字符串的输入和输出有以下两种方式。

(1)逐个字符输入输出。

(2)将整个字符串一次输入或输出。 例如:

就是将整个字符串一次性输出。

在进行字符串的输入和输出过程中,需要注意以下几点。

(1)输出字符不包括^0。

(2)输出字符串时,输出项是字符型数组名,输出时遇到0’结束。

(3)输入多个字符串时,以空格分隔。所以输入单个字符串时其中不能有空格。 在字符串输入和输出中,需要介绍两个特殊函数。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《C++程序开发案例课堂》_了解C++的更好途径_9.1 第9章 灵活定义数据类型
下一篇:《C++程序开发案例课堂》_了解C++的更好途径_4.1 运算符概述
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×