指针

2021-03-16  本文已影响0人  爱丶Notexplain

指针的基础、

c语言中的指针,可以使程序简洁,高效,紧凑。在计算机内部存储器中,没一个字节单元都有一个编号,称之为地址。这个地址就相当于门牌号。

简单的说指针就是一个地址。同样称之为指针变量。

指针变量、

指针它不是基本类型,而是一种构造类型,一般形式为:

类型说明符  变量名;

其中“*”表示一个指针变量,例如:

int *p;

以上代码表示p是一个指针变量,它的值是某个整形变量的地址,或者说p指向一个整形变量。

static int  p1;//p1是指向静态整形变量的指针变量。

folat p2;//p2是指向浮点类的指针变量。

char p3;//p3是指向字符类型的指针变量。

指针变量的赋值、

变量的地址是由编译系统分配的,用户不知道具体地址,在c语言中提供了地址运算符“&”来表示变量的地址;

指针的运算、

指针运算时以指针变量所存放的值(地址量)作为运算量而进行的运算,指针的运算就是地址的计算。

指针的算术运算、

运算符                 计算公式                      意义

+                            p+n                 指针向地址大的方向移动n个数据

-                             p-n                  指针向地址小的方向移动n个数据

++                       p++或++p          指针向地址大的方向移动1个数据

--                          p--或--p            指针向地址小的地方移动1和数据

 -                             p-q                 两个指针之间相隔数据元素的个数

注(不同数据类型的两个指针实行加减乘除运算是无意义的)。

指针的关系运算、

两指针之间的关系运算,表示它们指向的地址之间的关系运算。

运算符         说明          列子          运算符             说明           列子

   >               大于          p>q            <=                小于等于      p<=q

  <               小于           p<q              !=                  不等于        p!=q

   >=         大于等于      p>=q            ==                   等于           p==q

空指针、

指的是指针变量存了零号地址。注(访问零号地址存储的值或者修改其值,都是不允许的,运行程序是,会出现下面情况:Segmentation  fault)

在对指针进行间接引用前,应该先判断该该指针是都为NULL,这样才不会出现错误。

const指针、

修饰最近一个变量,变量一旦被修饰,其值就不可能被改变。

上一篇下一篇

猜你喜欢

热点阅读