C语言 指针

  1、 什么是指针?

    指针是内存中的地址,在C语言中,每个变量、数组、结构体都有对应的内存地址,所以,都可以通过指针指向它们,

   并通过指针对它们中的数据进行操作。

 

  2、例子1:

      int  a =3;

      float b = 4.5 ;

      char c = 'y';     

        
变量 地址 内存用户数据区
a 1000 3
b 1001 4.5
c 1002 'y'
  1003  

 

     

 

 

 

 例子分析

   首先,在程序上,我们是定义了一个整形变量并赋值3。

   而实际上,变量a会被分配一个内存的存储空间,用于存放它的值3,而每个内存的存储空间有一个地址,

   通过上面的表格,我们可以看到这个地址是1000,所以,变量a中的值就是存放在内存中地址为1000这个位置中。

   而这个内存中的地址1000就是变量a的指针,或称为变量a的地址。

 

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

 

  3、定义指针变量的一般格式:

    基类型  * 指针变量名 

 

    格式分析

      (1)基类型,其实就是我们前面学习变量定义时的类型,即整型int,浮点型float,   字符型char。

      (2)*,星号,用于说明将要定义的变量是用于存放地址的

      (3)指针变量名,其实就是变量名,命名规则与变量定义是一样的。

      

    例子:

        int *a;

        float *b;

        char *c;

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

 

   4、指针变量的赋值与引用  

     指针变量的赋值格式: 

     指针变量 = &变量;

 

     针变量的引用格式: 

      * 指针变量;

 

     分析:

      &:取地址运算符,就是取出后面变量的地址,然后,通过=将地址赋给指针变量

       *:指针运算符(或称“间接访问”运算符),就是指向后面的(指针变量)的地址所指向存储单元。

 

    例子:

        int x=3;     //假设x被分配的内存地址是1000

        float y=4.5;  //假设y被分配的内存地址是1001

        char z='a';   //假设z被分配的内存地址是1002

 

        int *a;

        float *b;

        char *c;

   

        a=&x;  //将变量x的地址1000赋给指针变量a,则a中的内容是1000

        b=&y;  //将变量y的地址1001赋给指针变量b,则b中的内容是1001

        c=&z;   //将变量z的地址1002赋给指针变量c,则c中的内容是1002

     

        *a;  //指向a中存放的地址,即指向内存地址1000的存储单元,而这个单元中的内容是

             3,所以,结果就是3。

        *b;  //指向b中存放的地址,即指向内存地址1001的存储单元,而这个单元中的内容是

             4.5,所以,结果就是4.5。

        *c;  //指向c中存放的地址,即指向内存地址1002的存储单元,而这个单元中的内容是

             'a',所以,结果就是'a'。

 

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

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

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

>>>进入学习