推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

基于数组元素访问数组中的顺序和存储地址法

   2023-06-02 网络整理佚名1890
核心提示:由于每个数组元素相当于一个变量,因此指针变量可以指向数组中的元素,也就是说可以用指针方式访问数组中的元素。对一个指向数组元素的指针变量的定义和赋值方法,与指针变量相同,例如:如果指针变量p已指向数组中的某一个元素,则p+1指向同一数组中的下一个元素。引入指针变量后,就可以用以下两种方法来访问数组元素:

前面我们知道,数组元素在数组中的排列顺序和存储地址可以通过数组下标来确定。 由于每个数组元素都相当于一个变量指针变量可以指向数组中的元素,也就是说可以通过指针的方式访问数组中的元素。

指向数组元素的指针变量的定义和赋值方法与指针变量相同,例如:

int a[10]; 
int *p; 
p=&a[0]; 

C语言规定数组名代表数组首地址,即第0个元素的地址。 所以:

p=a; 
int *p=a; 

对于指向首地址的指针p,p+i(或a+i)为数组元素a[i]的地址,*(p+i)(或*(a+i))为值一个[我]。

如果指针变量 p 已经指向数组中的一个元素,则 p+1 指向同一数组中的下一个元素。

引入指针变量后,可以使用以下两种方法访问数组元素:

(1)下标法,即访问a[i]形式的数组元素,上面介绍数组的时候就用到了这个方法。

(2)指针法,即用*(a+i)或*(p+i)的形式间接访问数组元素,其中a为数组名,p为指向的指针变量数组,其初始值 p=a。

#include
int main()
{
        int i;
        int a[10]={1,2,3,4,5,6,7,8,9,0};
        int *p=a;
        for(i=0;i<10;i++)
        {
                printf("P Value:%d   a Value :%d\n",*(p++),*(a+i));
        }
        printf("\n");
        return 0;
}

注意这两种输出方式,可以通过++或--移动指针并修改自身的值,但是不能改变数组名本身的值。

请自行运行并分析。

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON