C语言 数组指针与指向数组的指针变量

  1、 数组指针

    数组指针就是数组在内存中的起始地址。

 

  2、 指向数组的指针变量

    指向数组的指针变量就是存放(数组在内存中起始地址)的指针变量。

 

  3、例子1:

       int  a[2] ={6,8};   

       int *p=a;    //*p就是指向数组的指针变量  

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

a[1]

1001
  1002  
  1003  

 

     

 

 

 

 

 

   例子分析:

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

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

       而每个内存的存储空间有一个起始地址,通过上面的表格,我们可以看到这个起始地址是1000,

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

       而第2个元素8就存放在1001这个位置中。

    (2)在第二行代码中,我们再定义了一个指针变量p,

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

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

 

 

   4、指向数组元素的指针

    数组中每一个元素都有一个对应的内存地址,所以,指向数组元素的指针,就是存放了(数组元素地址)的指针变量。

    例子:

       int  a[2] = { 6 , 8 };   

       int *p=&a[1];  //*p就是指向数组元素的指针

 

    通过上面的例子,我们可以看到将数组 a 中的1号元素的地址赋给指针变量p,

    根据上面的表格,1号元素的地址是1001,所以,指针变量p就指向了1001这个地址。

 

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

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

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

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