原标题:C语言之指针的使用
指针是C语言中的一个重要的内容,这一节我们来一起学习指针。
在C语言中,指针被用来表示内存单元的地址,如果把这个地址用一个变量来表示,那么这个变量就被称为指针变量。
指针变量也有不同的类型,用来保存不同类型的变量的地址。
我们下面来看一看指针在C语言中是怎么使用的。
我们知道,电脑在运行时所需要的数据都存放在了计算机的存储器中,通常是以一个字节作为存储单元,为了能够正确的访问这些数据,每个储存单元都必须要有一个编号,这个编号就成为该单元的地址。
我们来看一个形象的例子:我们把一家宾馆看成是内存,则宾馆的房间就是内存单元,房间号码就是该单元的地址。
在存储中字符型变量占用一个单元,单精度浮点型变量占用四个单元,而整型变量根据不同的编译环境占用的单元也不同。
我们来看一看指针变量的定义形式:
[存储类型] 数据类型 *指针变量名=初始值;
l 存储类型与前面介绍过的相同分为:register、static、extern、auto这四种类型,其中auto是默认的类型。
l 数据类型是该指针可以指向的数据类型。
l *表示后面的变量是指针变量。
l 需要特别注意的是:指针变量的值与变量值是完全不同的两个概念。
我们在来看看指针变量的使用:
在定义指针变量之后,必须将其与某个变量的地址相关联才能使用。
地址关联就是为指针变量赋值,也就是将变量的地址赋值给指针变量。
其中有两种方式,一种是赋值方式;另外一种是定义时赋初值的方式。
例如:
第一种:int I, *p;
p=&I;
第二种:int I,*p=&I;
在这里要区分一下:&是取地址符,取出来的是一个地址;*是指针,指向一个地址;
上例中:p代表的是指针变量,给这个指针变量赋值时,所赋的值必须是一个地址变量,也就是p被赋值之后,代表的就是一个地址;
而I代表的是变量的名。
请注意:指针变量的值和变量的值是完全不同的概念。
理解上面所说的之后也就有以下的两条结论:
1. *指针变量名——代表所指变量的值
2. 指针变量名——代表所指变量的地址
请注意,指针可以赋值为空地址,
int *p=NULL;
好了!今天的讲述就到这里了。
我们这节仅仅了解了指针的基础知识,下一节我们将来学习指针变量与简单变量的关系,以及指针的运算。
责任编辑: