《指针定义和引用》PPT课件.ppt

上传人:tia****nde 文档编号:6393200 上传时间:2020-02-24 格式:PPT 页数:31 大小:316.31KB
返回 下载 相关 举报
《指针定义和引用》PPT课件.ppt_第1页
第1页 / 共31页
《指针定义和引用》PPT课件.ppt_第2页
第2页 / 共31页
《指针定义和引用》PPT课件.ppt_第3页
第3页 / 共31页
点击查看更多>>
资源描述
第15讲指针定义和引用 一 指针和地址的概念1 内存与地址2 指针和指针变量3 对内存单元的访问方式二 指针的运算1 指针变量的定义2 指针运算符3 指针变量的初始化4 指针的运算三 指针变量作为函数参数 1 内存与地址 存储单元 存放一个字节数据的存储器 存储单元的内容 存储单元内的数据 内存地址 存储单元的编号 一 指针和地址的概念 x 10 y a z 9 8 2 指针和指针变量 指针 就是变量的内存地址 是一个常量 指针变量 就是存放变量内存地址的变量 变量的指针 变量的地址 当把某个变量x的地址存入指针变量p后 我们就说这个指针变量p的指针指向该变量x 3 对内存单元的访问方式 直接访问方式 通过变量名访问 间接访问方式 通过变量的指针访问 1 指针变量的定义 格式 类型说明符 指针变量名1 例 int p1 p2 说明 1 指针变量的名是p1和p2若写成 int p1 p2 则p2被定义为整型变量而非整型指针变量 二 指针的运算 格式 类型说明符 指针变量名1 例 int p1 p2 说明 2 指针变量的类型是定义时所规定的指向变量的类型 如p1 p2只能指向整型变量 不能指向实型和字符型变量 格式 类型说明符 指针变量名1 例 int p1 p2 说明 3 指针变量的值表示的是它所指向变量的地址 若一个指针变量为0 NULL 表示该指针为空 说明它没有指向任何变量 存储单元 2 指针运算符 取地址运算符 指针运算符 取地址运算符 作用 取变量的地址 例 inti p1 p1 运算符返回操作对象的内存地址 指针变量通过 的赋值语句 指向该操作对象 例 p1 将chr的地址赋给指针变量p2 p1 p2 chr i 赋值之后指针P2指向了字符型变量chr 赋值之后指针P1指向了整型变量i 引用运算符 作用 取指针所指向的变量的值 例 inti 100 p1 p1 运算符间接地存取指针变量所指向的变量的值 例 p1 i p1 p1 10 i 例指针运算符的使用 main inta 50 p 声明整型指针变量p p 程序运行结果 p 50 p ffea 100 a ffe 例指针运算符的使用 main int p1 p2 x1 x2 scanf d d 输入 12输出 p1 1 p2 2 p1 1 p2 1 例 和 的混合运用 和 两个运算符的优先级相同 当混合使用时 按自右而左的顺序进行运算 定义 inta b int p1 p2 有 p1 p2 a b 3 指针变量的初始化 格式类型说明符 指针变量名1 初始地址值 注意 指针变量在使用前必须要有确定的值 即指向一个变量 例 inti ptr1 4 指针的运算 实质 地址的运算 类型 指针赋值运算 赋地址运算 指针算术运算 指针加 减 一个整数运算 两个指针相减运算 指针关系运算 两个指针比较运算 指针赋值运算 赋地址运算 例交换两个指针所指向变量的值 main int p1 p2 x1 10 x2 20 t p1 程序运行结果 p1 10 p2 20 p1 20 p2 10 x1 20 x2 10 例两个指针变量交换指向 main int p1 p2 s intx1 10 x2 20 p1 程序运行结果 p1 10 p2 20 p1 20 p2 10 算术运算 移动指针 移动指针 对指针变量进行加上或减去一个整数 或通过赋值运算 使指针变量指向相邻的存储单元 指针移动是以它指向的数据类型所占的字节数为移动单位 只有当指针指向一串连续的存储单元时 指针的移动才有意义 才可以将一个指针变量与一个整数n做加减运算 例 main inta 10 0 1 2 3 4 5 6 7 8 9 intn 6 p1 p2 p1 p2 a printf 1 p1 d p2 d n p1 p2 p1 p1 n p2 printf 2 p1 d p2 d n p1 p2 程序运行结果 1 p1 0 p2 02 p1 6 p2 1 p1 p1 p1 4 n p1 p2 printf 3 p1 d p2 d n d n p1 p2 n 程序运行结果 3 p1 1 p2 1 n 0 两个指针的比较运算 两个指针的比较运算经常用于数组 以判断两个指针所指数组元素位置的先后 例 若pipj 则pi所指的地址在pj所指的地址之后 若pi pj 则pi所指的地址与pj所指的地址相同 若pi pj 则pi所指的地址与pj所指的地址不同 三 指针变量作为函数参数 在C语言中 函数参数可以是指针类型 当指针变量作函数参数 其作用是将一个变量的地址传送到另一个函数中 过程为 形参从实参获得了变量的地址 即形参和实参指向同一个变量 当形参指向的变量发生变化时 实参指向的变量也随之变化 指针作为函数参数举例 swap int x int y inttemp temp y y x x temp 改变形参所指向变量的值 main inta 10 b 20 printf 1 a d b d n a b swap 程序运行结果 1 a 10 b 202 a 20 b 10 说明如下 1 主函数 定义变量a b 并初始化 2 主函数 调用swap 将实参的值 地址 传递给形参 使得形参x y分别指向实参a b 3 swap 函数 交换形参 x y的值 即a b的值 例交换两个元素的值 swap int x int y int p p x x y y p 改变形参的值 main inta 10 b 20 int p1 程序运行结果 1 a 10 b 202 a 10 b 20 说明如下 1 主函数 定义变量a b 并初始化 2 主函数 定义指针变量p1 p2 并初始化 使得p1 p2分别指向a b 3 主函数 调用swap 将实参的值 地址 传递给形参 使得形参x y分别指向变量a b 4 swap 函数 交换形参x y的值 地址 使得x y的指向发生改变 由于实参对形参是单向传递 因此 形参的变化对实参没有影响 例交换两个元素的值 swap int x int y int p p x 指针p未赋值 x y y p main inta 10 b 20 swap 例用选择法将任意10个整数按从大到小顺序排序 main int p i a 10 for i 0 i 10 i scanf d a i p a sort p 10 for i 0 i 10 i printf d p printf n sort intx intn inti j k temp for i 0 ix k k j if k i temp x i x i x k x k temp
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!