ad

《C++程序开发案例课堂》_了解C++的更好途径_8.4 指针与数组

admin 58 2023-11-01

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

8.4 指针与数组

在实际应用中,数组和指针有着密切联系。数组与普通的变量不同,数组名是指向该数 组首元素的地址。也就是说,指针可以用数组名来初始化。既然如此,经过初始化的指针能

否代替原来的数组名呢?答案是肯定的。下面介绍指针与数组的应用。

8.4.1 指 针 的 算 术 运 算

指针的操作与整型变量类似,它们都是使用数值表示,指针可以进行“加”“减”操 作,对该指针指向地址的前后地址中存在的变量进行操作。指针变量操作又与普通变量有所 不同,对指针变量加上1或者减去1,其实是加上或者减去指针所指向的数据类型的大小。当 给一个指针加上或者减去整型变量,指针表达式返回的是一个新的地址。

《C++程序开发案例课堂》_了解C++的更好途径_8.4 指针与数组

同时,两个指针还可以进行相减运算。如果两个指针相减,得到的是两个指针所指向的 地址之间变量的个数。

对指针进行加1操作,得到的是下一个元素的地址,而不是原有地址值直接加1。

下面通过实例来说明指针算术运算的使用方法

【例8-6】指针算术运算(代码8-6.txt)。

新建名为 zzsstest 的C++Source File源程序。源代码如下:

#include

using namespace std;

int main(int argc, char* argv[])

int int*

do

)

cdp]09,8,7,6,5,4,3,2,1,0);

std::cout<<*cdp<<"\n";

cdp++;

while(*cdp);

system("pause");

return 0;

8.4.2 利用指针存储一维数组的元素

下面通过一个实例来看看如何利用指针存储一维数组。

指针是用来保存地址的变量,&是用来取地址的。数组名代表数组首元素的地址。 【例8-7】指针存储一维数组(代码8-7.txt)。

新建名为zzsztest的 C++Source File源程序。源代码如下:

#include

using namespace std;

int main(int argc, char* argv[])

int counDown[10]={9,8,7,6,5,4,3,2,1,0};

int cmpd[10]={);

int i=0;

int* cdp=&counDown[0];

int* pp=&cmpd[0];

do

/* std::cout<<*cdp<<"\n";*/

*pp=*cdp;

cdp++;

pp++;

} while(*cdp);

For(int j=0;j<=9;j++)

cout<

system("pause");

return0;

【代码剖析】

在该例中,首先声明了一个int型数组,数组中的变量是从9 到0;接下来,又定义了一个cmpd 数组,该数组含有10个变量。定义int

型指针,指向第一个数组的第一个变量地址;定义 int型指针,指向数组首地址。用do-while循环,将指针变量所指地址的值赋给第二个指针变量指向地址的值,将两个指针变量++,指向下一个地址,直到该数组结束。将第二个数组的值输出。

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

从结果来看,通过指针调用了数组中的值,并且将结果输出。

.4.3 利 用 指 针 传 递 一 维 数 组 到 函 数 中

下面继续介绍指针的应用,利用指针将数组传递到函数中,调用该函数,对数组进行 操作。

【例8-8】用指针传递数组到函数中(代码8-8.txt)。

新建名为 zzestest 的 C++Source File 源程序。源代码如下:

#include

using namespace std;

int sumn(int *cdp)

sum=0;

do

sum+=*cdp;

cdp++;

)while (*cdp);

return sum;

int main(int argc, char* argv[])

int counDown[10]=(9,8,7,6,5,4,3,2,1,0};

int i=sumn(&counDown[0]);

cout<<"i="<

system("pause");

return 0;

【代码剖析】

在该例中,首先定义了一个函数 sumn, 该 函 数的返回值为 int 型,输入参数为 int 型指针变 量,该函数实现将该指针对应的数组的值全部相 加,返回该数组元素值的和。在主程序中,定义了 一个 int型数组,该数组包含0~9的10个数,定 义 int 型变量 i, 将 sumn 的返回值赋给 i, 该函数 的参数传入数组的首个元素的地址,将 i 的结果 输出。

运行结果如图8-8所示。

C\Users\adminstror\source\e.-

B=45

请按任意键继续.

图8-8 用指针传递数组到函数中从运行结果来看,把数组的全部值的和都输出了。通过传递数组首元素的地址达到调用该数组的目的。

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

上一篇:《C++程序开发案例课堂》_了解C++的更好途径_6.3 特殊函数调用方式——递归调用
下一篇:《C++程序开发案例课堂》_了解C++的更好途径_8.1 指针概述
相关文章

 发表评论

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

×