将一维数组看成一个整体作为函数参数时,用数组名作为函数的形式参数或实际参数。一维数组作为函数的形式参数本质上是一个指针变量,所以在描述上不需要指定形参数组的长度。上面程序中函数sum的原型为:int sum;,表示了该函数在被调用时应该传递一个整型数组给一维数组形式参数v[],数组的长度由整型变量n表示,函数sum的功能是将用形式参数v表示的长度为n的数组元素求和。......
2023-11-20
在C程序设计中,使用指针的概念和C语言提供的存储分配类标准库函数可以非常容易地实现一维动态数组。实现一维动态数组的基本步骤为:
①定义合适数据类型的一级指针变量。
②调用C动态存储分配标准库函数按照指定的长度和数据类型分配存储。
③将动态分配存储区域的首地址转换为所需要的指针形式赋值给对应的指针变量。
④将指针变量名作为一维数组名操作。
【例8.18】 编写程序实现冒泡排序功能,程序中假定事先并不知道排序元素的个数。为了模拟数据,程序中仍然要求被排序数组用随机函数生成。
例8.18的程序除了被处理的数组是动态创建的之外,程序的功能和结构在第4章中已经进行了讨论,请读者参照第4章的知识自行分析。程序的一次执行过程和结果如下所示:(www.chuimin.cn)
请输入参加排序的元素个数:15
排序前的数据序列:
43 50 64 10 41 22 22 84 65 17 81 30 42 64 73
排序后的数据序列:
10 17 22 22 30 41 42 43 50 64 64 65 73 81 84
从上面程序实现可以看出,使用动态数组可以根据应用的实际需要进行数据准备,给程序设计带来许多的灵活性。使用动态一维数组时,需要注意和直接定义一维数组之间的差异。在直接定义数组时,可以对数组进行初始化操作。但对于动态一维数组,则需要使用循环赋值的方式来实现数组赋初值工作。例如:
有关C语言程序设计基础(第3版)的文章
将一维数组看成一个整体作为函数参数时,用数组名作为函数的形式参数或实际参数。一维数组作为函数的形式参数本质上是一个指针变量,所以在描述上不需要指定形参数组的长度。上面程序中函数sum的原型为:int sum;,表示了该函数在被调用时应该传递一个整型数组给一维数组形式参数v[],数组的长度由整型变量n表示,函数sum的功能是将用形式参数v表示的长度为n的数组元素求和。......
2023-11-20
图8.3用指针修改数组元素的值使用指针变量表示数组元素示例。另外,在输出数组值的操作中,首先让指针变量p指向数组0号元素,然后通过循环控制中的p++运算,使得指针变量p依次指向a数组的其他元素,通过*p的方式表达数组元素值。程序执行的结果为:0010000如果有两个指针变量分别指向同一个数组的两个不同元素,则两个指针变量之间的距离表示了它们之间的差距有多少个数组元素。......
2023-11-20
当指针变量指向一维数组的首元素时,称为指向了一维数组。所以,函数中一维数组形式参数可以用同类的指针形式参数替代;同理也可以用指向特定数组的指针变量来传递数组类实际参数。特别需要注意的是,函数的形式参数无论使用的是数组名形式还是指针变量形式,本质上都是一个指针变量,在被调函数中既可以将它当作数组名使用也可以将它当作指针变量使用。......
2023-11-20
一维数组是最简单的数组,其逻辑结构为线性表。一维数组必须先定义才能使用。例如:2.一维数组的初始化数组定义后,系统为其开辟所需的存储单元,但是如果未经初始化,其存储单元中的数值是不确定的,即随机数。数组元素的初值必须依次放在一对大括号内,各初值之间用逗号隔开。......
2023-10-21
,常数n};例如:int a1[5]={1,2,3,4,5};一维数组的初始化可以用以下方法实现:①数组初始化时,给出全部数组元素的初始值。②输出数组元素值。......
2023-11-20
对一维数组的引用,既可以用传统的数组元素的下标法,也可使用指针的表示方法。例7.11输入10个数,采用指针变量表示的地址法输入输出数组各元素。由于数组元素在内存是连续存放的,若给指向整型变量的指针传递数组的首地址,则该指针指向二维数组。#include<stdio.h>例7.16用指针法输入输出二维数组各元素。......
2023-11-18
前面已经讨论了数组的输入输出,采用循环结构同样可以实现字符数组的输入输出。程序设计中常常希望将字符串作为整体进行输入输出处理,C标准库中提供了专门用于字符串输入输出的函数。字符串输入输出示例。......
2023-11-20
图6.3二维数组a[3][4]示意图多维数组定义的一般形式为:数据类型符数组名[常量表达式][常量表达式]…图6.4二维数组存储示意图图6.5三维数组存储示意图根据多维数组在存储器中按行存储的规则和多维数组的行列顺序可以计算出多维数组元素存储时在线性连续存储单元中的排列序号。......
2023-11-20
相关推荐