C语言 指针运算

 

  1、 指针运算

    指针运算,其实,指针也可以进行运算,而运算的结果将会指向内存中的另一个地址,所以,在对指针进行运算时,

   要相当小心,否则,就会出现不可预料的结果。

    

  2、例子

     

    int a[ 2 ] = {4,5,6};  //定义了整型变量数组a,并存放了3个整型值,

                   分别是4,5,6。

 

      int *p = &a; //定义了指针变量p,并通过&运算符取出变量数组a的地址,赋给指针变量p。

             所以,就是取出了变量数组a的起始地址,通过下面的表格我们可以看到

             该起始内存地址是1000,所以,p中的值就是1000。

 

      p = p + 2;   //然后,我们使用p加上2,即使用p中的值1000+2,结果就是1002,再赋值

              给p,所以,p中的值就等于1002。

 

      int c = *p;   //然后,通过星号指向p中保存的内存地址1002,根据下面的表格,我们可以

              看到1002是数组元素a[2]的地址,而它的值是6,所以,就取出了6赋值给

              变量c,所以,c中的值等于6。

 

    

变量数组a 内存地址 变量值
a[0] 1000
a[1] 1001
a[2] 1002

 

 

 

 

 

 

  小结:

  (1)指针变量中的地址值可以进行算述运算来改变它的值,从而,实现将指针指向其它的内存地址。

  (2)当指针变量指向一个数组时,可以通过改变指针变量中的地址来指向数组中不同的元素。

 

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

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

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

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