在C语言中,二维数组是由一维数组作元素的一维数组。当需要用指针指向二维数组时,可以采用一级指针变量和二级指针变量两种处理形式。表8.3指向若干元素构成的一维数组指针变量表示二维数组元素使用指向由若干个元素组成的一维数组的指针处理二维数组。......
2023-11-20
前面讨论过只要是数组元素就等用于同数据类型的普通变量。所以,程序中可以用数据类型相同的一级指针变量来指向任意维数数组的元素。定义二维数组和合适的指针变量后,则可以使用指针变量指向数组中的任何一个元素。例如,下面的语句序列表示了二维数组a的元素和一级指针变量p之间的关系:
double a[5][8],*p;
p=&a[3][2]; //赋值方式,指针变量p指向数组元素a[3][2]
或者
double a[5][8],*p=&a[3][2];//初始化方式,指针变量p指向数组元素a[3][2]
一般地,对于数组a中的i行j列元素而言,使用p=&a[i][j]就表示指针变量p指向数组中的i行j列数组元素。(www.chuimin.cn)
如果一个指针变量已经指向了一个数组元素,对指针变量进行指针运算就表示被它指向的那个数组元素。例如,设一级指针变量p已经指向了二维数组元素a[3][2],则表达式*p就等价于a[3][2]。
【例8.10】 随机产生4行5列二维数组的元素值,找出其中的最小值。要求在查找过程中使用指针变量遍历二维数组。
由于二维数组在内存中的存放顺序是按行优先的顺序存储,如下程序段中才有可能采用指针沿着数组存储区移动(p++)的方式遍历整个二维数组。
在这个程序段中,通过表达式p=&a[0][1]的指针变量p指向了数组a的0行1列元素,然后在循环控制下通过执行表达式p++,使得指针变量p依次指向数组a的其他元素,通过表达式*p表示出相应的二维数组元素。程序仅输出了某次执行时的最小元素值,读者可以自行在程序中增加一个输出函数来检验结果的正确性。
有关C语言程序设计基础(第3版)的文章
在C语言中,二维数组是由一维数组作元素的一维数组。当需要用指针指向二维数组时,可以采用一级指针变量和二级指针变量两种处理形式。表8.3指向若干元素构成的一维数组指针变量表示二维数组元素使用指向由若干个元素组成的一维数组的指针处理二维数组。......
2023-11-20
图8.3用指针修改数组元素的值使用指针变量表示数组元素示例。另外,在输出数组值的操作中,首先让指针变量p指向数组0号元素,然后通过循环控制中的p++运算,使得指针变量p依次指向a数组的其他元素,通过*p的方式表达数组元素值。程序执行的结果为:0010000如果有两个指针变量分别指向同一个数组的两个不同元素,则两个指针变量之间的距离表示了它们之间的差距有多少个数组元素。......
2023-11-20
对一维数组的引用,既可以用传统的数组元素的下标法,也可使用指针的表示方法。例7.11输入10个数,采用指针变量表示的地址法输入输出数组各元素。由于数组元素在内存是连续存放的,若给指向整型变量的指针传递数组的首地址,则该指针指向二维数组。#include<stdio.h>例7.16用指针法输入输出二维数组各元素。......
2023-11-18
查找元素在数组中的位置,有三种方式:◇ 从前往后查找。图9.4.5indexOf查找元素值是否存在于数组中2.lastIndexOflastIndexOf()的查找标准和indexOf()的一样,不过前者是从后往前查找。find()函数从前往后依次使用数组元素调用callback回调,直到callback返回true时停止调用。动手写9.4.7执行9.4.7.html,输出结果到网页,如下图所示。图9.4.7find按条件查找元素数组还提供了一个与find()类似的findIndex()函数。......
2023-11-08
例如,对一维结构体数组的初始化就类似于普通二维数组的初始化,初始化中的注意事项也与二维普通数组初始化时相同或类似。同样也不能将结构体数组元素作为一个整体直接进行输入输出,也需要通过输入输出数组元素的每一个成员分量达到输入输出结构体数组元素的目的。对结构体数组元素操作的唯一例外是可以将结构体数组元素作为一个整体赋给同类型数组的另外一个元素,或赋给一个同类型的结构体变量。结构体数组操作示例。......
2023-11-20
图8.1函数内存映射方式1.指向函数指针变量的定义C语言中可以定义指针变量来存储函数的首地址,并利用该指针变量对函数进行调用。指向函数的指针变量的真正作用是作为函数参数使用,使程序在功能的实现上具有更大的灵活性。指向函数的指针变量求最大值、最小值和两数之和。......
2023-11-20
此例证明直接用数组取值与用指针法数组取值完全相同,即变量c与d是同一个值。程序点评本例验证了数组与指针的关系。2)变量运算结果及P1口显示证明,程序正确执行。这是一个简单例子,用以说明用地址作为形参进行函数间数据传送。2)输出加法运算结果到P1,P1=00001010=0×0A=10。完成后,返回s,并传送到主函数,输出到P1。......
2023-11-07
图6.3二维数组a[3][4]示意图多维数组定义的一般形式为:数据类型符数组名[常量表达式][常量表达式]…图6.4二维数组存储示意图图6.5三维数组存储示意图根据多维数组在存储器中按行存储的规则和多维数组的行列顺序可以计算出多维数组元素存储时在线性连续存储单元中的排列序号。......
2023-11-20
相关推荐