变量与指针变量:
(1)变量有地址,指针变量可以存放变量的地址。
(2)当指针变量中存放某个变量的地址后,我们就说该指针变量指向这个变量。
使用指针变量的三个基本步骤:
(1)定义指针变量:即给指针变量分配内存空间。
(2)对指针变量赋值:也就是使指针变量指向某对象,该对象可以是变量、数组、函数或动态分配的一块内存空间等。
(3)通过指针变量间接访问所指向的对象。
- 定义指针变量
指针变量的定义格式: 数据类型 *变量名
其中:
* :是指针类型变量的标志符号。
变量名:是指针变量名(构成与标识符一致)。
数据类型:是指针变量所指向的变量的数据类型。
数据类型 * :表示指针类型(是一种数据类型)。
重要说明:定义一个指针变量,系统将为该指针变量分配一定大小的内存(在Dev-C++中,每个指针变量占有8个字节的长度)。
2. 指针变量的初始化
(1)在定义指针变量的同时为指针变量提供初值。
(2)使用赋值语句为变量提供初值
3. 定义多个指针变量
4. 通过指针变量间接访问所指向的变量
指针类型中有两个特殊的单目运算符:& 和 *
(1) & :取地址运算符
语法: &变量名 //获取变量的内存单元地址
(2)* :指针运算符(也称为间接访问运算符)
语法: *指针变量名 或者 *指针常量 //表示该指针所指向的变量
注意:(1)比如int a=3; 那么&a就叫做指针常量。
(2)如果指针变量pta中存放着变量a的指针,则*pta表示pta所指向的变量即变量a。
举个例子:
注意:指针变量的值一定是“地址”;指针变量所指对象的值不一定是“地址”。
使用指针变量时应注意的几点:
(1)不要访问没有被初始化的指针变量
由于p变量未初始化,p中可能存在一个不确定的单元地址,这时的输入将会改变原来存储单元(p存储的地址的内存单元)的值,造成结果混乱。
(2)指针变量可以有空值,即该指针变量不指向任何变量。常用符号常量NULL表示空指针值,其实NULL代表的值是整数0。编译系统约定0号单元不存放有效数据。