好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

C语言复习提纲第六章指针2.pdf

5页
  • 卖家[上传人]:飞****9
  • 文档编号:128651256
  • 上传时间:2020-04-21
  • 文档格式:PDF
  • 文档大小:181.69KB
  • / 5 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 6 3 字符串与指针字符串与指针 前前 言言 字符串是通过数组来存放的 因此字符串的表现形式可以是 字符串是通过数组来存放的 因此字符串的表现形式可以是 字符数组字符数组与与字符指针字符指针 一一 字符数组与字符指针的有关概念 字符数组与字符指针的有关概念 P257 P259 10 4 3 1 定义与初始化定义与初始化 假设有如下定义 假设有如下定义 char s1 20 ASDFGHJ s2 ASDFGHJ 则 则 s1 是存放字符串的字符数组 是存放字符串的字符数组 s2 是指向字符串的指针变量 是指向字符串的指针变量 a 字符数组字符数组 b 字符指针变量字符指针变量 二者区别 二者区别 字符数组 由若干个元素组成 每个元素存放字符串的一个字符数组 由若干个元素组成 每个元素存放字符串的一个字符字符 对字符数组 初始化是把字符串放到数组中 对字符数组 初始化是把字符串放到数组中 s1 最多可存储最多可存储 20 个字符 个字符 字符指针 存放的是 字符指针 存放的是 char 型数据的 型数据的 地址地址 对字符指针初始化是把地址 如 字符串常量或字符数组的首地址 赋给指针变量 字符串长度不受限定 对字符指针初始化是把地址 如 字符串常量或字符数组的首地址 赋给指针变量 字符串长度不受限定 2 赋初值赋初值 对字符数组用赋值语句赋值 只能逐个元素进行 不能对整个数组名赋值 因为数 组名是地址常量 字符指针变量可以用赋值语句赋地址 对字符数组用赋值语句赋值 只能逐个元素进行 不能对整个数组名赋值 因为数 组名是地址常量 字符指针变量可以用赋值语句赋地址 例 例 char s1 20 s1 20 ASDFGHJ s1 ASDFGHJ char s2 s2 ASDFGHJ s2 中获得的是中获得的是 ASDFGHJ 字符串常量的首地址 在字符串常量的首地址 在 C C 中 系统为字符串 常量在内存都分配了存储地址 如同字符数组一样处理 中 系统为字符串 常量在内存都分配了存储地址 如同字符数组一样处理 3 读入字符串 从键盘 读入字符串 从键盘 不能对没有指向的字符指针变量从键盘进行输入操作 因为键盘输入的字符串没有 存储地址 不能对没有指向的字符指针变量从键盘进行输入操作 因为键盘输入的字符串没有 存储地址 例 例 char s2 cin s2 正确方法 将指针指向有效存储空间 如字符数组 后在输入 正确方法 将指针指向有效存储空间 如字符数组 后在输入 例 例 char s1 20 s2 s2 s1 cin s2 cin s2 二二 指针与一维字符数组 指针与一维字符数组 P252 P254 1 对字符串中字符的存取 可以用下标方法 也可以用指针方法 对字符串中字符的存取 可以用下标方法 也可以用指针方法 2 例例 1 输入一串字符存储在字符数组中 用指针方式逐一显示字符 并求其长度 输入一串字符存储在字符数组中 用指针方式逐一显示字符 并求其长度 include include void main char s 80 p printf 请输入字符串请输入字符串 gets s P146 gets 字符数组字符数组 p s p 指向数组的第一个元素指向数组的第一个元素 cout 输出每个字符输出每个字符 while p 0 判断字符串是否结束判断字符串是否结束 cout p 指针下移 直到指针下移 直到 p 指向字符串结束符指向字符串结束符 cout n 字符串的长度字符串的长度 p s endl 指针相减运算指针相减运算 说明 说明 p 与与 s 的区别的区别 p 是指针变量 指针下移可以用是指针变量 指针下移可以用 p 运算实现 运算实现 s 是数组名 是表示数组首地 址的常量 不能进行 是数组名 是表示数组首地 址的常量 不能进行 s 运算 运算 P259 说明 说明 及例 及例 10 20 例 例 10 21 三三 字符指针作函数参数字符指针作函数参数 1 参数 实参 形参 的传递方式参数 实参 形参 的传递方式 P254 说明 说明 实参与形参的对应关系可以有以下实参与形参的对应关系可以有以下 4 种方式 种方式 P257 2 注释及例题 注释及例题 P254 P255 例例 10 19 3 函数中指针的灵活用法 函数中指针的灵活用法 P256 P257 例例 10 19 中的 中的 四四 字符指针数组 字符指针数组 P268 1 形式 形式 char 数组名数组名 数组长度数组长度 例 例 char score 4 COBOL PASCAL BASIC C 存储图存储图 1 P269 图图 10 40 逻辑逻辑存储 存储 2 特点 特点 当存储多个字符串时 节省存储空间当存储多个字符串时 节省存储空间 二维字符数组需要按统一长度 最大字符串的长度 开辟存储空间 二维字符数组需要按统一长度 最大字符串的长度 开辟存储空间 例 例 char s 4 7 COBOL PASCAL BASIC C 存储 存储 i 为行号为行号 s i 0 s i 1 s i 2 s i 3 s i 4 s i 5 s i 6 s 0 C O B O L 0 s 1 P A S C A L 0 s 2 B A S I C 0 s 3 C 0 采用字符指针 数组 可以按字符串的实际长度存储 以采用字符指针 数组 可以按字符串的实际长度存储 以 0 表示每个字符串 的结束 表示每个字符串 的结束 存储图存储图 2 物理物理存储 存储 a 字符串指针数组排序前字符串指针数组排序前 功能与应用 常用于处理字符串数组 如多个字符串排序 功能与应用 常用于处理字符串数组 如多个字符串排序 说明 字符串不能直接交换其位置 因为每个字符串长度不同 应采用交换指 针的方法 说明 字符串不能直接交换其位置 因为每个字符串长度不同 应采用交换指 针的方法 b 字符串指针数组排序后字符串指针数组排序后 4 指针数组的参数传递方法 指针数组的参数传递方法 P269 例例 10 26 6 4 函数与指针函数与指针 一一 指向函数的指针 指向函数的指针 P260 1 函数的调用方法函数的调用方法 通过函数名调用通过函数名调用 例 例 P260 例例 10 22 通过函数指针调用通过函数指针调用 说明 每一个函数都占用一段内存单元 它们都有一个起始地址 说明 每一个函数都占用一段内存单元 它们都有一个起始地址 而函数名代表该函数的而函数名代表该函数的入口地址入口地址 P260 2 指向函数的指向函数的指针变量指针变量 以 以 P261 改写后的程序为例改写后的程序为例 定定 义义 形形 式 式 P261 说明说明 1 例 例 int p int int 说说 明 明 P261 区分区分 int p int int 与与 int p int int 注注 释 释 P262 说明说明 3 赋赋 值值 形形 式 式 P262 说明说明 4 例 例 P261 图图 10 35 及注释及注释 说说 明 明 P262 说明说明 6 调调 用用 形形 式 式 P262 说明说明 5 3 函数指针变量的应用函数指针变量的应用 功能介绍 功能介绍 P262 二二 返回指针值的函数 返回指针值的函数 P265 1 指针型函数的概念 指针型函数的概念 P265 前言前言 2 定定 义义 形形 式 式 P265 例及说明 例及说明 P265 三三 void 指针类型指针类型 1 含义及功能 含义及功能 P277 2 形式及例 形式及例 P278 3 应应 用 用 动态存储分配机制动态存储分配机制 通常情况下 在程序运行之前程序中变量的个数和类型是确定的 但在实际应 用中无法预见数据需要占用多大的存储空间 因而需要在运行程序时根据具体情况 向系统申请分配存储空间 这种分配机制称为动态存储分配 通常情况下 在程序运行之前程序中变量的个数和类型是确定的 但在实际应 用中无法预见数据需要占用多大的存储空间 因而需要在运行程序时根据具体情况 向系统申请分配存储空间 这种分配机制称为动态存储分配 4 动态分配存储空间的相关函数 动态分配存储空间的相关函数 P296 申请分配动态存储空间申请分配动态存储空间 malloc 可用于开辟一个变量 可用于开辟一个变量 例 例 malloc 2 calloc 可用于开辟一个数组 可用于开辟一个数组 例 例 calloc 2 4 函数有返回值 地址 所以调用 申请 时要将其赋予一个指针变量 函数有返回值 地址 所以调用 申请 时要将其赋予一个指针变量 释放申请的动态存储空间释放申请的动态存储空间 free 注注 释 释 包含的头文件 包含的头文件 include P377 malloc 和和 calloc 函数返回的是函数返回的是 void 类型指针 在程序中使用时经常需要进行类型指针 在程序中使用时经常需要进行 强制类型转换 强制类型转换 P277 5 用法示例用法示例 例例 1 修改如下程序 修改如下程序 include void main int x p cin x p p 100 cout x p endl 将变量将变量 x 改用申请分配动态存储空间的方法 改用申请分配动态存储空间的方法 include include void main int p p int malloc 2 申请一个长度为申请一个长度为 2 的存储空间 的存储空间 cin p 将其起始地址赋值给指针将其起始地址赋值给指针 p p p 100 cout p endl free p 释放指针释放指针 p 指向的存储空间指向的存储空间 。

      点击阅读更多内容
      相关文档
      中考语文一轮复习课件:病句修改.pptx 第五单元写作《语言要简明》课件+ 统编版语文七年级下册.pptx 期末复习:《标点符号专题》课件 统编版语文七年级下册.pptx 第三单元《课外古诗词诵读》复习课件 统编版语文七年级下册.pptx 第19课《紫藤萝瀑布》复习课件 统编版语文七年级下册.pptx 第24课《带上她的眼睛》复习课件 统编版语文七年级下册.pptx 第三单元写作《抓住细节》课件 统编版语文七年级下册.pptx 第五单元写作《语言要简明》课件 统编版语文七年级下册.pptx 【课件】第二单元第1课+精彩瞬间课件+2024—2025学年人教版初中美术七年级下册.pptx 【课件】平行线的判定(教学课件)人教版七年级数学下册+.pptx 【公开课】第一单元第2课《生活之美》课件+2024—2025学年人教版(2024)初中美术七年级下册.pptx 【课件】第二单元第1课《精彩瞬间》课件-+2024—2025学年人教版(2024)初中美术七年级下.pptx 【公开课】第一单元第2课+《生活之美》课件人教版(2024)初中美术七年级下册.pptx 【课件】数轴说课稿课件2024-2025学年人教版数学七年级上册.pptx 【课件】平移(教学课件)2024—2025学年人教版数学七年级下册.pptx 【课件】直线、射线、线段++课件+人教版七年级数学上册.pptx 【课件】两条直线被第三条直线所截+课件2024-2025学年+人教版(2024)七年级数学下册++.pptx 【课件】第二单元+第2课+科技之光(课件)-2025-2026学年初中美术七年级上册人教版(2024).pptx 【公开课】第一单元第2课+《生活之美》课件-+2024-2025学年人教版初中美术七年级下册.pptx 【课件】一元一次不等式+课件2024-2025学年人教版(2024)七年级数学下册++.pptx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.