C语言的精华——指针的认识

1   指针的概念

    0 程序是数据和指令的集合

    1 程序运行时数据和指令需要占用内存空间(简称内存)。

    2 内存是以字节为单位的连续的存储空间,计算机会给每个字节单元分配唯一的编号。

    3 这些编号称为内存的地址,计算机利用地址来使用内存。

    4 C语言定义一个变量时会给变量分配存储空间,已分配存储空间的首地址称为该变量的地址

    5 地址就像是要访问存储单元的指示标,在高级语言中形象的称为指针

    6 综上:地址就是指针,指针就是地址。

2  指计变量

    0 变量有三要素:变量的类型、变量的名字、变量的值。

    1 如果指针存放到某个变量中,那么这个变量就叫做指针变量。

    2 指针变量不等于指针,其本质是一个变量,只不过这个变量的存储的值是一个指针。

    3 指针变量作为变量,同样也有三要素:指针变量的类型、指针变量的名称、指针变量的值。

    4 我们习惯上会把:指针、指针变量、指针变量的类型、指针变量的名称、指针变量的值都简称为指针。

    5 所以当有书上说”指针是地址、指针是一种数据类型、指针是一种特殊的变量“时,说的都对但又不全对。

3 指针变量的定义

    定义指针变量与定义普通变量非常类似,不过要在变量名前面加星号*    

   【类型】 *标识符   , 实例如下:

      int  *p=NULL;

      0 指针变量的【类型】是它所指向变量的类型,不是指针本身数据的类型,本身数据类型都是unsigned long int类型

      1  *是类型标识符,标识后面的变量名称是一个”指针“(这里的“指针”就是上面的”指针变量名称“的缩写)

      2 定义指针变量时直接初始化(可初始化为NULL),属于良好的编程习惯,否则容易产生野指针。

4  变量名到地址的变换

    编译系统完成变量名到变量存储地址的转换

posted on 2020-10-15 23:36  笛若心生  阅读(104)  评论(0)    收藏  举报

导航