任务描述
本关任务:编写程序用指针变量遍历一个数组。
相关知识
为了完成本关任务,你需要掌握: 1.指向数组元素的指针的运算 2.如何遍历数组。
视频1 指针与一维数组
指向数组元素的指针的运算
指针与整数的加减运算
有数组和指针变量的定义如下:
int a[10],*p=a;
数组名代表数组的首地址,也就是数组元素a[0]的地址,现在指针变量p已指向数组中的第一个元素a[0],假设a[0]的地址为0x0022ff40,则p的值为0x0022ff40,则p+1的值为0x0022ff44,p+1指向同一数组中的下一个元素,而p-1的值为0x0022ff3c,p-1指向同一数组中的上一个元素,数组已经越界,系统不做数组越界检查。同理, p+i指向数组的第i个数组元素a[i]。指针与整数的加减运算结果是一个指针。
两个指针相减运算
有数组和指针变量的定义如下:
int a[10],*p1=&a[3],*p2=&a[5];
两个指针变量p1和p2可以进行相减运算,结果是一个整数,但是只有在p1和p2都指向同一数组中的元素时才有意义,现在p1指向a[3],p2指向a[5],那么p2-p1的值是整数 2,表示两个指针p1、p2之间数组元素的个数。
注意:指针变量不能做加法运算,如不能有
p1+p2的运算。
两个指针的关系运算
有数组和指针变量的定义如下:
int a[10],*p1=&a[3],*p2=&a[5];
两个指针变量p1和p2可以进行比较运算,若p1<p2为真,则表示p1指向的数组元素在前,p2指向的数组元素在后;若p1<p2为假,则相反;若p1==p2,则表示p1与p2指向同一元素。若p1与p2不指向同一数组,比较无意义。指针变量还可以与NULL比较,表示是否指向了一个变量,如p==NULL或p!=NULL。
编程要求
根据提示,在右侧编辑器 Begin-End 区间补充代码,输入并输出数组的值。
测试说明
平台会对你编写的代码进行测试:
测试输入:491512321631794282 预期输出:491512321631794282
开始你的任务吧,祝你成功!
