一. 指针简介
一般来说,指针是一个其数值为地址的变量(或更一般地说是一个数据对象),正如char类型的变量用字符作为其数值,而int类型变量的数值是整数,指针变量的数值表示的是地址。
如果将某个指针变量命名为ptr , 就可以使用如下语句 :
ptr = & pooh ;
对于这个语句 ,我们称 ptr “指向” pooh 。ptr 和 & pooh的区别在于前一个是变量 , 而后者是一个常量 , 对于 ptr 可以指向任何地方 。
ptr = & bah
此时 , ptr 的值是 bah 的地址 。
PS : 与指针相关的运算符
地址运算符 : & 后跟一个变量名时,&给出该变量的地址 。
间接运算符 : * 后跟一个指针名或地址时 ,* 给出存储在被指向地址中的数值 。
例 :
nurse = 22;
ptr = & nurse ; //指向nurse的指针
val = * ptr ; //将ptr指向的值赋给变量val
二. 指针声明
需要说明指针所指向变量的类型和声明一个变量为指针。原因是不同的变量类型占用的存储空间大小不同 ,而有些指针操作需要知道变量类型所占用存储空间 。同时,程序也需要知道了解地址中存储的是何种数据。例如 ,long 和 float 两种类型的数值可能使用相同大小的存储空间 ,但是他们的数据存储方式完全不同 。指针的声明形式如下 :
int *pi ; //pi是指向一个整数变量的指针
char * pc ; //pc是指向一个字符变量的指针
float * pf , * pg ; //pf,pg是指向浮点变量的指针