图 第7章间接访问一指针 ©指针的概念 ©指针运算与数组 ©动态内存分配 字符串再讨论 指针作为函数参数和返回值 ©指针数组与多级指针 ®指向多维数组的指针 ©指向函数的指针 司 LoCCS
第7章 间接访问—指针 指针的概念 指针运算与数组 动态内存分配 字符串再讨论 指针作为函数参数和返回值 指针数组与多级指针 指向多维数组的指针 指向函数的指针
@ 指针的概念 ©指针就是把(变量)地址作为数据处理 ©指针变量:存储地址的变量 ©变量的指针:当一个变量存储另一个变量的地址 时,那我们说前者是后者的指针 ©使用指针的目的:提供间接访问 司 LoCCS
指针的概念 指针就是把(变量)地址作为数据处理 指针变量:存储地址的变量 变量的指针:当一个变量存储另一个变量的地址 时,那我们说前者是后者的指针 使用指针的目的:提供间接访问
③ 指针的概念 续 ©如在某一程序中定义了 int x 2; X 2 1000 如系统给x分配的空间是1000号单 元,则指向x的指针是另一个变量 p,p中存放的数据为1000 1000号单元的内容有两种访问方 1000 p 式: ·访问变量x(直接访问) ·访问变量p指向的单元的内容(间接 访问) 司 LoCCS
指针的概念 续 如在某一程序中定义了 int x = 2; 如系统给x分配的空间是1000号单 元,则指向x的指针是另一个变量 p,p中存放的数据为1000 1000号单元的内容有两种访问方 式: • 访问变量x(直接访问) • 访问变量p指向的单元的内容(间接 访问) 1000 2 1000 x p
③ 定义指针变量 ©定义指针变量要告诉编译器该变量中存放的是一 个地址。 ④指针变量的主要用途是提供间接访问,因此也需 要知道指针指向的单元的数据类型 圈指针变量的定义 类型标识符*指针变量; 如:int*intp; double *doublep; int *p,x,*q; 司 LoCCS
定义指针变量 定义指针变量要告诉编译器该变量中存放的是一 个地址。 指针变量的主要用途是提供间接访问,因此也需 要知道指针指向的单元的数据类型 指针变量的定义 类型标识符 *指针变量; 如:int *intp; double *doublep; int *p, x, *q;
图 指针变量的操作 如何让指针指向某一变量?因为我们不知道系统分 配给变量的真正地址是什么。 ·用地址运算符“&”解决。如表达式“&x”返回的是变 量x的地址。如:intp=&x; ·&运算符后面不能跟常量或表达式。如&2是没有意义的, &(m*n+p)。也是没有意义的 如何通过指针变量处理和改变它所指向的单元的值? 。用引用运算符“*”解决。如*intp表示的是intp指向 的这个单元的内容。如:*intp=5等价于x=5 ·在对intp使用引用运算之前,必须先对intp赋值 司 LoCCS
指针变量的操作 如何让指针指向某一变量?因为我们不知道系统分 配给变量的真正地址是什么。 • 用地址运算符 “&” 解决。如表达式 “&x” 返回的是变 量 x 的地址。如:intp = &x; • & 运算符后面不能跟常量或表达式。如 &2 是没有意义的, &(m * n + p )。也是没有意义的 如何通过指针变量处理和改变它所指向的单元的值? • 用引用运算符 “*” 解决。如 *intp 表示的是 intp 指向 的这个单元的内容。如:*intp = 5 等价于 x = 5 • 在对 intp 使用引用运算之前,必须先对 intp 赋值