欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    C语言_第10章.ppt

    • 资源ID:4211575       资源大小:2.31MB        全文页数:25页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言_第10章.ppt

    第十章 指 针,第十章 指针,10.1 指针概述 10.2 数组与指针 10.3 指向指针的指针 10.4 指针变量作函数参数 10.5 返回指针值的函数和指向函数的指针 10.6 实战练习,本章学习内容,10.1.1 地址与指针,将存储器的一个字节作为一个内存单元,整型占4个字节,所以整型数据占4个内存单元,字符型占1个字节,所以字符型数据占1个内存单元。 为每个内存单元编号,根据编号就可以准确找到该内存单元,这个编号就称为地址。 将内存比作一个旅馆,内存单元比作旅馆中的房间,那么地址就好比房间的门牌号。 指针是一种变量类型,这种变量专门用来存放地址。,10.1.1 地址与指针,例如:int i = 2;,10.1.2 变量与指针,变量的地址是变量与指针二者之间连接的纽带 指针是指向一个变量的地址,一个变量的地址称为该变量的指针 存放变量地址的变量就是指针变量 指针类型是专门用来存放内存单元地址的变量类型,10.1.3 指针变量,1. 一般形式: 类型说明符 *变量名; “*”表示该变量是一个指针变量 变量名是指针变量名 类型说明符表示该指针变量所指向的数据类型 int *p; char *cp;,10.1.3 指针变量,2. 指针变量的赋值: 指针变量在使用前必须先赋值 指针变量的值只能是地址,不能是其他数据类型 地址运算符,10.1.3 指针变量,3. 指针变量的引用 解引用运算符“*”可以对指针变量解引用,获得指针变量所指向的值 解引用形式:*指针变量; 例如: int a = 6; int *p = ,10.1.3 指针变量,4. &*p等价于p *&a等价于a,10.1.4 指针自加自减运算,10.2.1 一维数组与指针,数组的所有元素都存放在一段连续的内存中,如果把数据的首地址赋给指针变量,就可以通过指针变量遍历整个数组。 一维数组与指针 当定义一个数组时,系统会在内存中为数组分配一段连续的内存空间,数组名就是这段内存空间的首地址。 将数组首地址赋给一个指针变量,这个指针就指向一个一维数组,通过这个指针变量就可以引用数组中的每个元素。,10.2.1 一维数组与指针,例如: int *p, a5; p = a; a是数组名,也是数组的首地址 p指向数组a p等价于&a0 p+n就等价于&an,10.2.1 一维数组与指针,注意 1. 引用数组的方法有两种:假设a为数组名,p指向a的首地址 (1)下标法:ai表示数组a的第i个元素 (2)指针法:*(a+i)或*(p+i) 2. p+合法,a+不合法,因为a是数组首地址,它是一个常量 3. *p+等价于*(p+),先执行*p的运算,再执行p+,10.2.2 二维数组与指针,&amn 表示元素amn的地址 &an表示第n行的首地址,10.2.3 字符串与指针,字符串的访问有两种方式: (1)将字符串看作字符数组,通过数组下标操作字符串 (2)将字符串首地址看作字符指针,使用字符指针操作字符串,char *str = “hello”;,10.2.4 字符串数组,字符串数组是以字符串为元素的数组,可以将其看作是二维字符数组 char fruit520 = “Apple”, “Banana”, “Orange”, “Peach”, “Strawberry”;,使用指针数组代替二维字符数组,减少内存的浪费,每个数组元素都是一个指针,指向一个字符串。定义形式为: 类型名 *数组名数组长度;,10.3 指向指针的指针,一个指针可以指向整型变量、字符变量,当然也可以指向指针变量。 用一个指针变量A存放另一个指针变量的地址,称指针变量A为指向指针的指针变量。 指向指针的指针变量定义形式: 类型说明符 *指针变量名; 例如:int *p;,10.4 指针变量作函数参数,函数的参数类型可以是任何合法的C语言类型。 指针变量也可以作为函数参数。 (1)形参为整数变量的交换,10.4 指针变量作函数参数,(2)形参为指针变量的交换,(3)C语言中实参和形参之间的数据传递是单向的“值传递”方式,指针变量作为函数参数时也是如此,被调用函数中不可能通过改变形参指针变量的值来改变实参指针变量的值,但可以通过改变形参指针变量指向的值来间接改变实参指针变量指向的值。,10.5 返回指针的函数和指向函数的指针,函数返回值可以是任意合法的C语言数据类型,所以函数返回值也可以是指针类型 类型说明符 *函数名(参数列表); 例如: int *fun(int x, int y);,10.5 返回指针的函数和指向函数的指针,除了有返回指针的函数之外,还有指向函数的指针。 函数在编译时会被分配一个入口地址,这个入口地址就称为函数的地址,将该函数地址赋给一个函数指针变量,该指针变量就可以指向这个函数。 定义形式: 类型说明符 (* 指针名)(参数列表);,10.5 返回指针的函数和指向函数的指针,例如: int func(int x, int y); int (*p)(int x, int y); /*p就是函数指针*/ p = func; /*函数指针p指向函数func()*/ 调用方式: 函数指针名(实参列表); 例如:p(x, y);等价于func(x, y);,10.5 返回指针的函数和指向函数的指针,注意: (1)定义了函数指针,需要将某个函数地址赋给该函数指针,然后才能通过函数指针调用函数 (2)将一个函数地址赋给函数指针时,该函数的特征必须与函数指针定义时相同,否则编译出错,函数特征是指函数的参数列表个数、类型、返回值类型,10.6 实战练习,1编写程序,将数组中的元素按照相反顺序存放。 2输入两个字符串,将两个字符串逆序后再连接,最后输出。 3使用指针实现字符串的拷贝,并将字符串输出。 4有n个整数,将各个数顺序向后移动m个位置,最后m个数移到最前面。,END,

    注意事项

    本文(C语言_第10章.ppt)为本站会员(少林足球)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开