
你现在所处的位置在:首页→C语言教学→幻灯片版→第八章指针 第八章指针 指针的概念 指针变量 指针与数组 指针与函数 返回指针值的函数 中Ae◆1
你现在所处的位置在:首页→C语言教学→幻灯片版→第八章 指针 1 第八章 指针 指针的概念 指针变量 指针与数组 指针与函数 返回指针值的函数

你现在所处的位置在:首页→C语言教学→幻灯片版→第八章指针 >前言 C程序设计中使用指针可以 ·使程序简洁、紧凑、高效 ·有效地表示复杂的数据结构 ·动态分配内存 ·得到多于一个的函数返回值
你现在所处的位置在:首页→C语言教学→幻灯片版→第八章 指针 2 ➢前言 C程序设计中使用指针可以: ⬧ 使程序简洁、紧凑、高效 ⬧ 有效地表示复杂的数据结构 ⬧ 动态分配内存 ⬧ 得到多于一个的函数返回值

你现在所处的位置在:首页→C语言教学→幻灯片版→第八章指针 8.1指针的概念 ◆变量与地址 内存中每个字节有个编号-地址 内存 0 程序中:inti Q2000 2001 float k; 2002 编译或函数调用时为其分配内存单元 2003 k 0 2005 变量是对程序中数据 存储空间的抽象 车A8中口3
你现在所处的位置在:首页→C语言教学→幻灯片版→第八章 指针 3 变量与地址 程序中: int i; float k; 内存中每个字节有一个编号-----地址 …... …... 2000 2001 2002 2005 内存 0 2003 i k 编译或函数调用时为其分配内存单元 变量是对程序中数据 存储空间的抽象 8.1 指针的概念

你现在所处的位置在:首页→C语言教学→幻灯片版→第八章指针 指针与指针变量 指针:一个变量的地址 指针变量:专门存放变量地址的变量叫 指针 2000 整型变量i 2001 10 变量的 变量的内容 2002 地址 2003 2004 变量ipointer 2005 --2000 指针变量 2006 指针变 变量地址(指针 指向 地址存入 变晶变量值 指针变量
你现在所处的位置在:首页→C语言教学→幻灯片版→第八章 指针 4 …... …... 2000 2004 2006 2005 整型变量i 10 变量i_pointer 2001 2002 2003 指针:一个变量的地址 指针变量:专门存放变量地址的变量叫~ 2000 指针 指针变量 变量的 变量的内容 地址 指针变量 变量 变量地址(指针) 变量值 指向 地址存入 指针变量 指针与指针变量

你现在所处的位置在:首页→C语言教学→幻灯片版→第八章指针 类符 两者关系:互为逆运算 含义:取变量含义:取指针所指向变量的内容 理解 单目运算符 单目运算符 优先级:2 优先级:2 &i po 2000 10 结合性:自 2000 整型变量i 2001 10 I pointer &i=&(*i pointer) 2002 *i pointer *& 2003 2004 变量i pointer 2005 .-2000 指针变量 2006 1 pointer 指针变量,它的内容是地址量 *i pointer 指针的目标变量,它的内容是数据 &i pointer 指针变量占用内存的地址 5
你现在所处的位置在:首页→C语言教学→幻灯片版→第八章 指针 5 • 含义 含义: 取变量的地址 单目运算符 优先级: 2 结合性:自右向左 含义: 取指针所指向变量的内容 单目运算符 优先级: 2 结合性:自右向左 两者关系:互为逆运算 理解 …... …... 2000 2004 2006 2005 整型变量i 10 变量i_pointer 2001 2002 2003 2000 指针变量 i_pointer-----指针变量,它的内容是地址量 *i_pointer----指针的目标变量,它的内容是数据 &i_pointer---指针变量占用内存的地址 2000 10 i_pointer *i_pointer &i_pointer i i_pointer &i &(*i_pointer) i *i_pointer *(&i) i_pointer = &i = &(*i_pointer) i = *i_pointer = *(&i) &与*运算符

你现在所处的位置在,:首页→G语言教学)幻灯片版→第八章指针 直接访问与间接访问 ·直接访问:按变量地址存取变量值 :间接访问:通过存放变量地址的变量去访问变量 例 =3; 直接访问 2000 整型变量i 2001 20-+= 2002 2003 2004 变量i pointer 2005 e000 指针变量 2006 例 *i pointer=20; 间接访问 车a8中口6
你现在所处的位置在:首页→C语言教学→幻灯片版→第八章 指针 6 • 直接访问:按变量地址存取变量值 • 间接访问:通过存放变量地址的变量去访问变量 例 i=3; -----直接访问 指针变量 …... …... 2000 2004 2006 2005 整型变量i 10 变量i_pointer 2001 2002 2003 2000 3 例 *i_pointer=20; -----间接访问 20 直接访问与间接访问

你现在所处的位置在:首页→C语言教学→幻灯片版→第八章指针 例k=i; 直接访问 k=*i pointer; 间接访问 例子图解· 2000 整型变量i 2001 10 2002 整型变量k 2003 10 2004 变量i pointer 2005 2000 指针变量 2006 中AS◆7
你现在所处的位置在:首页→C语言教学→幻灯片版→第八章 指针 7 指针变量 …... …... 2000 2004 2006 2005 整型变量i 10 变量i_pointer 2001 2002 2003 2000 整型变量k 例 k=i; --直接访问 k=*i_pointer; --间接访问 10 例 k=i; k=*i_pointer; 例子图解

你现在所处的位置在:首页→C语言教学→幻灯片版→第八章指针 8.2指针变量 指针变量与其所指向的变量之间的关系 i pointer 变量i 一- *i pointer 2000 3 & i pointer *i pointer =3 *i pointer-3 指针变量的定义 般形式: [存储类型] 数据类型*指针名: 例 int *pl,*p2: float *q; 变量 指 static char *name; 算符 型 标识符 注意: 1、int*pl,*p2;与int*pl,p2 2、指针变量名是pl,p2,不是*pl,*p2 3、指针变量只能指向定义时所规定类型的变量 4、指针变量定义后,变量值不确定,应用前必须先赋值 +8中8
你现在所处的位置在:首页→C语言教学→幻灯片版→第八章 指针 8 指针变量与其所指向的变量之间的关系 指针变量的定义 一般形式: [存储类型] 数据类型 *指针名; 3 变量i 2000 i_pointer *i_pointer i *i_pointer &i i_pointer i=3; *i_pointer=3 3 变量i 2000 i_pointer *i_pointer i *i_pointer &i i_pointer i=3; *i_pointer=3 指针变量本身的存储类型 指针的目标变量的数据类型合法标识符 表示定义指针变量 不是‘*’运算符 例 int *p1,*p2; float *q ; static char *name; 注意: 1、int *p1, *p2; 与 int *p1, p2; 2、指针变量名是p1,p2 ,不是*p1,*p2 3、指针变量只能指向定义时所规定类型的变量 4、指针变量定义后,变量值不确定,应用前必须先赋值 8.2 指针变量

你现在所处的位置在:首页→C语言教学→幻灯片版→第八章指针 指针变量的初始化 般形式:[存储类型]数据类型*指针名=初始地址值; 例 int i; 赋给指针变量 int *p=&i; 变量必须已说明过 类型应一致 例 int i; 例 int *p=&i; int *q-p 用已初始化指针变量作初值 例 main() { int i: static int *p=&i 不能用auto变量的地址 () 去初始化static型指针 A8中口9
你现在所处的位置在:首页→C语言教学→幻灯片版→第八章 指针 9 一般形式:[存储类型] 数据类型 *指针名=初始地址值; 赋给指针变量, 不是赋给目标变量 例 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型指针 指针变量的初始化

你现在所处的位置在:首页→C语言教堂→幻灯片版→第八章指针 指针变量必须先赋值,再使用 例 main() inti=10: int *p; 2000 整型变量i *p-i; printf"d*p); 200 10 2002 2003 2004 一指针变量p 2005 例main() 2006 int i=10,k; int *p; p-&k; *p=i, printf"d,*p), 中AES◆l0
你现在所处的位置在:首页→C语言教学→幻灯片版→第八章 指针 10 例 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 2004 2006 2005 整型变量i 10 指针变量p 2001 2002 2003 随机 指针变量必须先赋值,再使用