中国高校课件下载中心 》 教学资源 》 大学文库

《C语言程序设计》课程教学课件(PPT讲稿)第十章 指针

文档信息
资源类别:文库
文档格式:PPT
文档页数:100
文件大小:623.01KB
团购合买:点击进入团购
内容简介
10.1.指针的基本概念 10.2.指针变量的定义和初始化 10.3指针变量作为函数参数 10.4 指针与数组 10.4.1 指针与一维数组 10.4.2 指针与多维数组 10.4.3 用指针访问字符串 10.4.4指针数组和多级指针 10.5 指针与函数 10.5.1 用函数指针变量调用函数 10.5.2用函数指针变量作函数参数 10.5.3返回指针的函数
刷新页面文档预览

第10章指针 指针是C语言的精华也是C的一个重要特色 指针是C语言中广泛使用的一种数据类型。 ©利用指针变量可以访问各种数据结构; ·利用指针能很方便地使用数组和字符串; ©利用指针能编出精练而高效的程序。 本章是难点,也是重点,初学者不易掌握。在理解 和熟悉基本内容前提下,上机编程是必不可少环节

第10章 指针 指针是C语言的精华也是C的一个重要特色 指针是C语言中广泛使用的一种数据类型。 利用指针变量可以访问各种数据结构; 利用指针能很方便地使用数组和字符串; 利用指针能编出精练而高效的程序。 本章是难点,也是重点,初学者不易掌握。在理解 和熟悉基本内容前提下,上机编程是必不可少环节

10.1.指针的基本概念 指针是变量的地址,变量的地址就是内存地址。 1、内存地址 在计算机中,把内存区划分为一个一个的存储单元, 每个单元为一个字节(8位),它们都有一个唯 的编号,这个编号就是唯一的内存地址。 低地址 个字节 注意:1、程序中定义的每个数据在编译 76543210 后都占有各自的内存区。 2002 2003 2、数据所占有的存储单元个数是由其类 2004 型决定的。 3、首地址:第1个单元的地址, 3000 4、内存单元的地址与单元的数据区别: 高地址 5、系统通过变量名对内存单元访问

指针是变量的地址,变量的地址就是内存地址。 1、内存地址 在计算机中,把内存区划分为一个一个的存储单元, 每个单元为一个字节(8位),它们都有一个唯一 的编号,这个编号就是唯一的内存地址。 注意:1、程序中定义的每个数据在编译 后都占有各自的内存区。 2、数据所占有的存储单元个数是由其类 型决定的。 3、首地址:第1个单元的地址, 4、内存单元的地址与单元的数据区别: 5、系统通过变量名对内存单元访问 10.1.指针的基本概念

内存单元中存放的数据。例:inta=300;char c=a?; 1000 300 变量a 1002 97 变量c 2、变量地址 定义一个变量,系统会根据变量的类型分配 内存单元。 内存单元的首地址,就是变量的地址。 变量的值:即变量所在内存单元的内容

2、变量地址 内存单元中存放的数据。例:int a=300; char c=‘a’; . 变量a 变量c 1000 1002 300 97 定义一个变量, 系统会根据变量的类型分配 内存单元。 内存单元的首地址,就是变量的地址。 变量的值: 即变量所在内存单元的内容

程序片段 int a,b,c; 2000 a=1; 利用变量名,直 2002 b=2; 直接将整 2004 -1 a 接存取变量值的方式 -2006-=2 b 直接将整 称为“直接访间” 2008 1y3 直接将父量a、b的值 取出,相加后存入变量c “直接访问”方式:按变量地址存取变量值的方式 “间接访问”方式:通过指针变量访问变量值

int a,b,c; a=1; b=2; c=a +b; 程序片段 2000 2002 2004 2006 2008 a b c 直接将整数 1 1 存入变量 a 2 直接将整数2 存入变量 b 3 直接将变量 a、b 的值 取出,相加后存入变量 c 利用变量名,直 接存取变量值的方式 称为“直接访问” 。 “直接访问”方式:按变量地址存取变量值的方式 “间接访问”方式:通过指针变量访问变量值

直接访问和间接访问 有两个上锁且放着物品的盒子A、B, 如果你有A盒子的钥匙,则可以直接打开A盒子 将物品取出; 如果你有B盒子的钥匙,而A盒子的钥匙在B盒 子中,要想取子中 品,刚必须先B盒 子,取出A盒的钱匙,手 打开将物段出。 上面两种情况就是直接访问和间接访问的概念。 间接访问的过程是:由指针得到变量的地址,根 据该地址找到变量的存储区,再对该存储区的内容进 行存取,从而实现了对变量的间接访问

打个比方 直接访问和间接访问 有两个上锁且放着物品的盒子A、B, 如果你有A盒子的钥匙,则可以直接打开A盒子 将物品取出; 如果你有B盒子的钥匙,而A盒子的钥匙在B盒 子中,要想取出A盒子中的物品,则必须先打开B盒 子,取出A盒子的钥匙,再打开A盒子将物品取出。 上面两种情况就是直接访问和间接访问的概念。 间接访问的过程是:由指针得到变量的地址,根 据该地址找到变量的存储区,再对该存储区的内容进 行存取,从而实现了对变量的间接访问

3、指针和指针变量 (1)指针就是地址 -变量在内存单元的首地址称为该变量的“指针。 •理解-通过变量的指针可以找到变量的内存单元。 一或者说指针指向该变量的内存单元, (2)指针变量:用来存放其它变量的地址或指针的 变量。例如:inti=32; 指针变量i pointer=&i; 指针变量的特点:(1)指针变量是一种变量,在内存 中要占有一定数量的存储单元。 (2)指针变量用来存放其他变量的指针值(即地址)

3、指针和指针变量 (1)指针就是地址 –变量在内存单元的首地址称为该变量的“指针。 •理解 -通过变量的指针可以找到变量的内存单元。 –或者说:指针指向该变量的内存单元. (2)指针变量:用来存放其它变量的地址或指针的 变量。 例如:int i=32; 指针变量i_pointer=&i; 指针变量的特点: (1)指针变量是一种变量,在内存 中要占有一定数量的存储单元。 (2)指针变量用来存放其他变量的指针值(即地址)

指针 2000 整型变量i 2001 10 变量的地址 变量的内容 2002 2003 2004 变量i pointer 2005 指针变量 变量地址(指针) 指向 地址存入 变量 变量值 指针变量

. . 2000 2004 2006 2005 整型变量i 10 变量i_pointer 2001 2002 2003 2000 指针 指针变量 变量的地址 变量的内容 指针变量 变量 变量地址(指针) 变量值 指向 地址存入 指针变量

问题 判断正错: §1、指针和指针变量的含义相同 §2、E 指针变量存放的是地址 §3、 变量的值和变量的指针含义相同 说明: pl存放a变量的地址称pl指向a

判断正错: §1、指针和指针变量的含义相同 §2、指针变量存放的是地址 §3、变量的值和变量的指针含义相同 说明: p1存放a变量的地址称p1指向a. 问题

&(取地址运算符)与(取内容运算符) 含义:取变量的地址,&后只能是 针所指向变量的内容,*的 变量或数组元素,不能是表达式 其后面地址所指向的变量。 单目运算符 优先级:2 优先级:2 结合性:自右向左 右向左 2000 整型变量i 2001 10 i pointer &i=&(*i pointer) 2002 * pointer *(&i 2003 2004 4一变量i pointer 2005 -2000 指针变量 2006 1 pointer 指针变量,它的内容是地址量 *i pointer 指针的目标变量,它的内容是数据 &i pointer 指针变量占用内存的地址

&(取地址运算符)与*(取内容运算符) ❖含义 ❖两者关系:互为逆运算 ❖理解 . . 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) 含义: 取指针所指向变量的内容,*的 作用是返回其后面地址所指向的变量。 单目运算符 优先级: 2 结合性:自右向左 含义: 取变量的地址,&后只能是 变量或数组元素,不能是表达式 单目运算符 优先级: 2 结合性:自右向左

注意事项: &:取地址,注意与作位运算符时的不同(双目) *:取内容,注意与作乘运算符时的不同(双目) &既可作用于一般变量,也可作用于指针变量 米只能作用于指针变量 定义指针变量时的*与该处的含义不同

注意事项: &:取地址,注意与作位运算符时的不同(双目) *:取内容 ,注意与作乘运算符时的不同(双目) & 既可作用于一般变量,也可作用于指针变量 * 只能作用于指针变量 定义指针变量时的 * 与该处的含义不同

刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档