★指针变量与其所指向的变量之间的关系 1 pointer 指针变量,它的内容是地址量 *i pointer 指针的目标变量,它的内容是数据 &i pointer-指针变量占用内存的地址 i pointer 变量i i*i pointer 2000 3 &ii pointer *i pointer i=3;*i pointer=3
i_pointer-指针变量,它的内容是地址量 *i_pointer-指针的目标变量,它的内容是数据 &i_pointer-指针变量占用内存的地址 指针变量与其所指向的变量之间的关系 3 变量i 2000 i_pointer *i_pointer i *i_pointer &i i_pointer i=3; *i_pointer=3
★直接访问与间接访问 ?直接访问:按变量地址存取变量值 间接访问:通过存放变量地址的变量去访问变量 例 i=3; 直接访问 2000 整型变量i 20 2008 ←变量i pointer 2000 指针变量 例 *i pointer=20; 间接访问
直接访问与间接访问 ❖直接访问:按变量地址存取变量值 ❖间接访问:通过存放变量地址的变量去访问变量 例 i=3; -直接访问 指针变量 . . 2000 2008 . 整型变量i 10 变量i_pointer . 2000 3 例 *i_pointer=20; -间接访问 20
指针变量的定义 一般形式: 「存储类型] 数据类型*指针名; int *pl*p2 铸示定义指针变量 指计变量sta cF厢是*nae运箅苻 型 标识符 注意: 1、int *p1,*p2;与 int *p1,p2; 2、指针变量名是pl,p2,不是*pl,p2 3、指针变量只能指向定义时所规定类型的变量 4、指针变量定义后,变量值不确定,应用前必须先赋值
指针变量的定义 ❖一般形式: [存储类型] 数据类型 *指针名; 合法标识符 指针变量本身的存储类型 指针的目标变量的数据类型 表示定义指针变量 不是‘*’运算符 例 int *p1,*p2; float *q ; static char *name; 注意: 1、int *p1, *p2; 与 int *p1, p2; 2、指针变量名是p1,p2 ,不是*p1,*p2 3、指针变量只能指向定义时所规定类型的变量 4、指针变量定义后,变量值不确定,应用前必须先赋值
★指针变量的初始化 一般形式:[存储类型]数据类型*指针名=初始地址值; 例 int i; 赋给指针变量 int *p=&i; 变量必须已说明过 类型应一致 例 int i; 例 int *n&p=&i; int i;int *q-p; 用已初始化指针变量作初值 p、q指向同一变量
指针变量的初始化 一般形式:[存储类型] 数据类型 *指针名=初始地址值; 赋给指针变量, 不是赋给目标变量 例 int i; int *p=&i; 变量必须已说明过 类型应一致 例 int *p=&i; int i; 例 int i; int *p=&i; int *q=p; 用已初始化指针变量作初值 p、q指向同一变量
查错: 指针变量必须先赋值,再使用 例 main( { int i=10; int *p; 2000 整型变量i *p=i; 10 printfd"p); 危险! 2008 ←一指针变量p 随机子 例 main( N int i=10; int *p, p=&i; printf%d"p);
例 main( ) { int i=10; int *p; *p=i; printf(“%d”,*p); } 危险! 例 main( ) { int i=10; int *p; p=&i; printf(“%d”,*p); } 指针变量必须先赋值,再使用 . . 2000 2008 . 整型变量i 10 指针变量p . 随机 查错: