Excel不相邻列如何打印在一起-英雄云拓展知识分享
126
2023-11-01
【摘要】 本书摘自《C++程序开发案例课堂》一书中第8章,第4节,由刘春茂、李琪编著。
8.4 指针与数组
在实际应用中,数组和指针有着密切联系。数组与普通的变量不同,数组名是指向该数 组首元素的地址。也就是说,指针可以用数组名来初始化。既然如此,经过初始化的指针能
否代替原来的数组名呢?答案是肯定的。下面介绍指针与数组的应用。
8.4.1 指 针 的 算 术 运 算
指针的操作与整型变量类似,它们都是使用数值表示,指针可以进行“加”“减”操 作,对该指针指向地址的前后地址中存在的变量进行操作。指针变量操作又与普通变量有所 不同,对指针变量加上1或者减去1,其实是加上或者减去指针所指向的数据类型的大小。当 给一个指针加上或者减去整型变量,指针表达式返回的是一个新的地址。
同时,两个指针还可以进行相减运算。如果两个指针相减,得到的是两个指针所指向的 地址之间变量的个数。
对指针进行加1操作,得到的是下一个元素的地址,而不是原有地址值直接加1。
下面通过实例来说明指针算术运算的使用方法。
【例8-6】指针算术运算(代码8-6.txt)。
新建名为 zzsstest 的C++Source File源程序。源代码如下:
#includeusing 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源程序。源代码如下:
#includeusing 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 源程序。源代码如下: 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 用指针传递数组到函数中从运行结果来看,把数组的全部值的和都输出了。通过传递数组首元素的地址达到调用该数组的目的。 版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~