C语言 改变指针来引用数组元素

  1、 改变指针来引用数组元素

   指针就是内存中的地址,而数组除了起始地址外,数组中的每个元素都对应一个内存地址,

   而且,同一个数组中的每个元素的内存地址就是连续的,所以,我们就可以通过数组的地址,即指针,来进行运算,

   如:对数组地址加1,这样,它就可以指向数组中的下一个元素,

   从而,通过改变指针来引用了数组中不同的元素。

 

   2、例子:

       int  a[2] ={4,5,6};   

       int *p=a;

       void main()

       {

        p=p+2;

        *p;

       }

   
变量 地址 内存用户数据区
a[0] 1000

a[1]

1001
a[2] 1002
  1003  

 

     

 

 

 

 

 

   例子分析:

    (1)首先,在程序上,我们是定义了一个整形数组a并赋值4、5、6,

       而实际上,数组a会被分配一个连续的内存存储空间,用于存放它的值4、5、6,

       而每个数组在内存中都有一个起始地址,通过上面的表格,我们可以看到这个起始地址是1000,

       所以,数组a中的第1个元素4就是存放在内存中地址为1000这个位置中,

       而第2个元素5就存放在1001这个位置中,如些类推。

    (2)在第二行代码中,我们再定义了一个指针变量p,然后,把数组a赋值给p

       这种操作就是将数组a在内存中的起始地址1000赋给指针变量p,

       从而,指针变量p就指向了1000这个地址

    (3)接着,在main函数中,我们使用指向数组的指针变量p加上2

       而目前p中的值是数组a的起始地址即1000,所以,就是1000+2结果等于1002,

       然后,再使用(指针运算符) * 取地址为1002中的值6,

       所以,通过改变指针变量中的值,就可以获取数组中不同的元素值。

 

=======================================================================

非常好,现在,我们已经掌握了C语言中的(改变指针来引用数组元素)但是,如何去运行用它呢?

所以,我们就需要通过下方的链接,进入到C语言的代码训练中,然后,通过实践去加深对该知识点的理解与运用。

>>>下载训练环境与使用说明(使用真实的开发环境,结合游戏闯关进行 编程训练)