★变量的直接访问与间接访问 ◆直接访问:按变量地址存取变量值 ◆间接访问:通过存放变量地址的变量去访问变量 直接访问 2000 整型变量i 2001 20 2002 2003 2004 变量 i pointer 200 指针变量 2006 例1 pointer=20; 间接访同
变量的直接访问与间接访问 ❖直接访问:按变量地址存取变量值 ❖间接访问:通过存放变量地址的变量去访问变量 例 i=3; -----直接访问 指针变量 …... …... 2000 2004 2006 2005 整型变量i 10 变量i_pointer 2001 2002 2003 2000 3 例 *i_pointer=20; -----间接访问 20
例k 直接访问 pointer; 间接访问 2000 整型变量 2001 0 2002 整型变量k 2003 2004 变量 pointer 2005 26 指针变量 2006
指针变量 …... …... 2000 2004 2006 2005 整型变量i 10 变量i_pointer 2001 2002 2003 2000 整型变量k 例 k=i; --直接访问 k=*i_pointer; --间接访问 10 例 k=i; k=*i_pointer;
★两种访问方式的特点 两种访问方式:相当于某人甲(系统)要找某人乙(变量) 来类比,有两种方法: (1)甲知道乙在何处,直接去找就是(即直接访问)。 (2)甲不知道乙在哪,但丙(指针变量)知道,此时甲 可以这么做:先找丙,从丙处获得乙的去向,然后再找乙 即间接访问)。 指针变量与其所指向的变量之间的关系 1 pointer 变量i pointer 2000 &i 1_ pointer I_pointer pointer
两种访问方式:相当于某人甲(系统)要找某人乙(变量) 来类比,有两种方法: (1)甲知道乙在何处,直接去找就是(即直接访问)。 (2)甲不知道乙在哪,但丙(指针变量)知道,此时甲 可以这么做:先找丙,从丙处获得乙的去向,然后再找乙 (即间接访问)。 指针变量与其所指向的变量之间的关系 两种访问方式的特点 3 变量i 2000 i_pointer *i_pointer i *i_pointer &i i_pointer i=3; *i_pointer=3
§8.2指针变量的定义和引用 ★指针变量的定义 令一般形式:[存储类型]数据类型指针名; 例pP2 示定义指针变量 指计变量(.是M的算型标识 注意: ipl, p2 Int*k 1.,p2: 2、指针变量名是p1,p2,不是*p1,*p2 3、指针变量只能指向定义时所规定类型的变量 4、指针变量定义后,变量值不确定,应用前必须先赋值
§8.2 指针变量的定义和引用 指针变量的定义 ❖一般形式: [存储类型] 数据类型 *指针名; 指针变量本身的存储类型 指针的目标变量的数据类型合法标识符 表示定义指针变量 不是‘*’运算符 例 int *p1,*p2; float *q ; static char *name; 注意: 1、int *p1, *p2; 与 int *p1, p2; 2、指针变量名是p1,p2 ,不是*p1,*p2 3、指针变量只能指向定义时所规定类型的变量 4、指针变量定义后,变量值不确定,应用前必须先赋值
★指针变量的初始化 一般形式:[存储类型]数据类型*指针名=初始地址值; 例nt1: 给指针变量 p=&i; 变量必须已说明过 类型应一致 int 1 int *pt&i p=&i int 1; int *q=p 用已初始化指针变量作初值 例main() int static int *p=&i 不能用auto变量的地址 (×) 去初始化 static型指针
指针变量的初始化 一般形式:[存储类型] 数据类型 *指针名=初始地址值; 赋给指针变量, 不是赋给目标变量 例 int i; int *p=&i; 变量必须已说明过 类型应一致 例 int *p=&i; int i; 例 int i; int *p=&i; int *q=p; 用已初始化指针变量作初值 例 main( ) { int i; static int *p=&i; .............. } () 不能用auto变量的地址 去初始化static型指针