c语言 pointer,计算机C语言pointer(指针).ppt

计算机C语言pointer(指针)

第十章 指针 C程序设计中使用指针可以: 使程序简洁、紧凑、高效 有效地表示复杂的数据结构 动态分配内存 得到多于一个的函数返回值 10.1 地址和指针的概念 变量与地址 &与*运算符 含义: &(取地址运算符) *(指针运算符) 直接访问与间接访问 直接访问:按变量地址存取变量值 间接访问:通过存放变量地址的变量去访问变量 指针变量与其所指向的变量之间的关系 10.2.2 指针变量如何指向变量 初始化方法:数据类型 *指针名=初始地址值; 10.2.3 指针变量作为函数参数——地址传递 特点:共享内存,“双向”传递 10.2.3 指针变量作为函数参数——地址传递 特点:共享内存,“双向”传递 10.2.3 指针变量作为函数参数——地址传递 特点:共享内存,“双向”传递 * 程序中: int i; float k; 内存中每个字节有一个编号-----地址 …... …... 2000 2001 2002 2005 内存 0 2003 i k 编译或函数调用时为其分配内存单元 变量是对程序中数据 存储空间的抽象 …... …... 2000 2004 2006 2005 整型变量i 10 变量i_pointer 2001 2002 2003 指针与指针变量 指针:一个变量的地址 指针变量:专门存放变量地址的变量叫指针变量 2000 指针 指针变量 变量的内容 变量的地址 指针变量 变量 变量地址(指针) 变量值 指向 地址存入 指针变量 i_pointer = &i = &(*i_pointer) i = *i_pointer = *(&i) i_pointer = &i = &(*i_pointer) i = *i_pointer = *(&i) 含义: 取指针变量所指向变量的内容 单目运算符 优先级: 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 含义: 取变量的地址 单目运算符 优先级: 2 结合性:自右向左 例 i=3; -----直接访问 …... …... 2000 2004 2006 2005 整型变量i 10 变量i_pointer 2001 2002 2003 2000 3 例 *i_pointer=20; -----间接访问 20 例 k=i; --直接访问 k=*i_pointer; --间接访问 例 k=i; --直接访问 k=*i_pointer; …... …... 2000 2004 2006 2005 整型变量i 10 变量i_pointer 2001 2002 2003 2000 整型变量k 10 3 变量i 2000 i_pointer *i_pointer i *i_pointer &i i_pointer i=3; *i_pointer=3 10.2.1 指针变量的定义 一般形式: 数据类型 *指针名; 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. 指针变量定义后,变量值不确定,应用前必须先赋值 10.2 变量的指针和指向变量的指针变量 例 int i; int *p=&i; int *q=p; 例 int *p=&i; int i; 赋给指针变量, 不是赋给目标变量

你可能感兴趣的:(c语言,pointer)