通过指针变量存取一维数组元素

任务描述

本关任务:编写程序用指针变量遍历一个数组。

相关知识

为了完成本关任务,你需要掌握: 1.指向数组元素的指针的运算 2.如何遍历数组。


视频1 指针与一维数组

指向数组元素的指针的运算
指针与整数的加减运算

有数组和指针变量的定义如下:

 
  
  1. int a[10],*p=a;

数组名代表数组的首地址,也就是数组元素a[0]的地址,现在指针变量p已指向数组中的第一个元素a[0],假设a[0]的地址为0x0022ff40,则p的值为0x0022ff40,则p+1的值为0x0022ff44p+1指向同一数组中的下一个元素,而p-1的值为0x0022ff3cp-1指向同一数组中的上一个元素,数组已经越界,系统不做数组越界检查。同理, p+i指向数组的第i个数组元素a[i]指针与整数的加减运算结果是一个指针

两个指针相减运算

有数组和指针变量的定义如下:

 
  
  1. int a[10],*p1=&a[3],*p2=&a[5];

两个指针变量p1p2可以进行相减运算,结果是一个整数,但是只有在p1p2都指向同一数组中的元素时才有意义,现在p1指向a[3]p2指向a[5],那么p2-p1的值是整数 2,表示两个指针p1p2之间数组元素的个数。

注意:指针变量不能做加法运算,如不能有p1+p2的运算。

两个指针的关系运算

有数组和指针变量的定义如下:

 
  
  1. int a[10],*p1=&a[3],*p2=&a[5];

两个指针变量p1p2可以进行比较运算,若p1为真,则表示p1指向的数组元素在前,p2指向的数组元素在后;若p1为假,则相反;若p1==p2,则表示p1p2指向同一元素。若p1p2不指向同一数组,比较无意义。指针变量还可以与NULL比较,表示是否指向了一个变量,如p==NULLp!=NULL

编程要求

根据提示,在右侧编辑器 Begin-End 区间补充代码,输入并输出数组的值。

测试说明

平台会对你编写的代码进行测试:

测试输入:4 91 51 2 32 16 31 79 42 82 预期输出:4 91 51 2 32 16 31 79 42 82


开始你的任务吧,祝你成功!

通过指针变量存取一维数组元素_第1张图片

你可能感兴趣的:(c语言,青少年编程,数据结构)