变量的间接引用 第7章指针 指针与指针变量 ·指针(地址):一个数据或变量在内存中的首地址 ·指针变量:专门存放变量地址的变量叫指针变量 指针 : X=100 4000 整型变量X 4002 100 变量的内容 4004 变量的地址 4006 4008 变p p=&x 指针变量 变量地址(指针) 指向 地址存入 变量 指针变量 变量值
第7章 指针 ➢指针与指针变量 • 指针(地址):一个数据或变量在内存中的首地址 • 指针变量:专门存放变量地址的变量叫指针变量 . . 4000 4008 400C 400A 整型变量x 100 变量p 4002 4004 4006 4000 指针 指针变量 变量的内容 变量的地址 X=100 p=&x 指针变量 变量 变量地址(指针) 变量值 指向 地址存入 指针变量 2 变量的间接引用
变量的间接引用 第7章指针 >指针变量的定义 一般形式:基本类型 *指针变量名列表; 长出森■的类利 例 char *pl; 量 合法标识符 算 int *p2,*p3; 注意: 1.指针变量名是p1、p2、p3而不是*仅起到标识作用 2.指针变量的类型是根据指针变量所指向单元中存放的 值的类型来确定的 3.一个指针变量在内存中也要占用内存单元 网☒D
第7章 指针 ➢ 指针变量的定义 一般形式: 基本类型 * 指针变量名列表; 表示定义指针变量 合法标识符 不是‘*’运算符 所指变量的类型 例 char *p1; int *p2,*p3 ; 注意: 1. 指针变量名是p1、p2、p3 而不是 * 仅起到标识作用 2. 指针变量的类型是根据指针变量所指向单元中存放的 值的类型来确定的 3. 一个指针变量在内存中也要占用内存单元 2 变量的间接引用
第7章指针 &与米运算符 含义:取变量含义:用i_pointer- 指针变量,它的内容是地址量 单目运算单相菇 *i_pointer-一指针的目标变量,即变量i 优先级:2理就先级&i pointer- 指针变量占用内存的地址 结合性:自右 : 2000 -整型变量i 2002 10 i pointer &i=&(*i pointer) 2004 i= *ipointer *(&i) 2006 2008 变量i pointer 200A 2000 指针变量 200C M☒
第7章 指针 &与*运算符 含义: 取变量的地址 单目运算符 优先级: 2 结合性:自右向左 含义:取指针所指向变量的内容 单目运算符 优先级: 2 结合性:自右向左 • 两者关系:互为逆运算 • 理解 . . 2000 2008 200C 200A 整型变量i 10 变量i_pointer 2002 2004 2006 2000 指针变量 i_pointer-指针变量,它的内容是地址量 *i_pointer-指针的目标变量,即变量i &i_pointer-指针变量占用内存的地址 i_pointer &i &(*i_pointer) i *i_pointer *(&i) i_pointer = &i = &(*i_pointer) i = *i_pointer = *(&i)
变量的间接引用 第7章指针 指针变量的引用 指针变量必须先赋值,再使用 但 例 int *p; p=4000; 指针变量赋值有两种方法: 1.将某个已经定义了的普通变量的首地址赋给指针 变量;例:inti,*p;p=&i 2.调用C语言的动态内存分配函数或运算符为指针 变量在内存的动态存储区找到一个可用区域。(链表中 介绍)
第7章 指针 ➢ 指针变量的引用 指针变量必须先赋值,再使用 例 int *p; 但 p=4000; 不合法 指针变量赋值有两种方法: 1. 将某个已经定义了的普通变量的首地址赋给指针 变量;例:int i,*p; p=&i; 2. 调用C语言的动态内存分配函数或运算符为指针 变量在内存的动态存储区找到一个可用区域。(链表中 介绍) 2 变量的间接引用
指针变量必须先赋值,再使用 第7章指针 main() int i=10; int *p; 2000 整型变量i *p=i; 2002 10 printf(%d”,*p); 2004 2006 2008 ←一指针变量p 200A 例 main() 200C int i i=10,k int *p; p=&k; *p=i; printf(“%d,*p);
第7章 指针 例 main( ) { int i=10; int *p; *p=i; printf(“%d”,*p); } 危险! 例 main( ) { int i=10,k; int *p; p=&k; *p=i; printf(“%d”,*p); } . . 2000 2008 200C 200A 整型变量i 10 指针变量p 2002 2004 2006 随机 指针变量必须先赋值,再使用