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

    C课件第讲全能版.ppt

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

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

    C课件第讲全能版.ppt

    第十三讲,Begin:,第八章 指针,指针和指针变量的概念 变量的指针和指向变量的指针变量,8.1.1 地址和指针,存储单元:存放一个字节数据的存储器。 存储单元的内容:存储单元中存放的数据。 存储单元的地址:存储单元的编号。 变量的首地址:变量占据的连续存储单元的起始地址,简称变量的地址。 指针:存储单元的地址,是一个常量。,8.1.1 地址和指针,int i; char ch; float f;,i = 1; ch = A; f = 2.5;,8.1.2 指针变量,指针变量是专门用来存放内存单元地址的特殊变量。当把某个变量i的地址存入指针变量p后,我们就说这个指针变量p指向该变量i。,指向,1000,i的地址存入p,int i = 10, *p;,p = ,指针与指针变量的区别,就是变量值与变量的区别,即指针变量的值是指针。例如,可以说变量i的指针是1000,但不能说变量i的指针变量是1000。,8.1.2 指针变量,对内存单元的访问有两种方式: 直接访问:直接根据变量名存取变量的值。 间接访问:将变量的地址存放在指针变量中,当要对变量进行存取时,首先读取指针变量的值,得到要存取变量的地址,再对该变量进行访问。,8.2.1 指针变量的定义,定义格式: 类型说明符 *指针变量名; 其中类型说明符指的是指针变量所指向变量的数据类型, “*”表示随后的变量是指针变量。 例如:int *ptr1; char *ptr2; ptr1是指向整型变量的指针变量,专门用来存放整型变量的地址。 ptr2是指向字符型变量的指针变量,专门用来存放字符型变量的地址。,8.2.1 指针变量的定义,说明: 1)指针变量中只能存放地址(指针),不能和整型 变量混淆。例如下面写法是错误的: int *ptr1; ptr1 = 1000; 指针变量可以取值为0(NULL),表示该指针变量不指向任何变量。 2)指针变量只能存放与它数据类型相同的变量的地址。例如下面写法是错误的: int *ptr1; char ch; ptr1 = ,8.2.2 指针变量的引用,指针变量可以通过一对互逆的运算符进行引用。 取地址运算符“ /*将变量ch的地址赋给指针变量ptr2*/,8.2.2 指针变量的引用,指针运算符“*” 作用:间接存取指针变量所指向变量的值。 例如:int i, *ptr1; char ch, *ptr2; ptr1 = ,8.2.2 指针变量的引用,说明: 1)定义语句中的“*”和执行语句中的“*”含义不同,定义语句中的“*”说明定义的是一个指针变量,而执行语句中的“*”表示间接存取指针变量所指向变量的值。 2)指针变量中必须存放了确定的地址值后才能进行指针运算。例如下面写法是错误的: int *ptr1; *ptr1 = 10; ptr1中存放的是一个随机的地址值,该地址有可能是系统程序已占用存储单元的地址,将10赋值给ptr1所指向对象后,原来的数据被更新,系统有可能遭到很严重的破坏。,8.2.2 指针变量的引用,例 指针运算符的使用,#include void main( ) int a=50, *p; p= ,程序运行结果: *p=50, p=fff4 a=100, &a=fff4,8.2.3 指针变量的初始化,一般格式: 类型说明符 *指针变量名 = 初始地址值; 例如:int i, *ptr1 = 说明: 1)任何指针变量在使用之前必须初始化,使指针变量指向一个确定的内存单元,未经初始化的指针变量禁止使用。 2)必须使用同类型变量的地址进行指针变量的初始化。,8.2.4 指针变量的运算,实质:地址的运算 类型: 指针变量赋值 指针变量加/减一个整数 两个指针变量比较 两个指针变量相减,8.2.4 指针变量的运算,1. 指针变量赋值:将已存在对象的地址赋给指针变量 例 交换两个指针变量所指向变量的值 #include void main( ) int *p1, *p2, x1=10, x2=20, t; p1= ,程序运行结果: *p1=10, *p2=20 *p1=20, *p2=10 x1=20, x2=10,8.2.4 指针变量的运算,程序运行结果: *p1=10, *p2=20 *p1=20, *p2=10 x1=10, x2=20,例 交换两个指针变量的值 #include void main( ) int *p1, *p2, *t=NULL, x1=10, x2=20; p1= ,8.2.4 指针变量的运算,2. 指针变量加/减一个整数:指向另一个存储单元 例 移动指针变量访问数组元素 #include void main( ) int a10=1, 3, 5, 7, 9, 11, 13, 15, 17, 19; int n=6, *p1, *p2; p1=p2= ,程序运行结果: 1) *p1=1, *p2=1 2) *p1=13, *p2=3 3) *p1=9, *p2=17,8.2.4 指针变量的运算,3. 两个指针变量比较:对两个指针变量中存放的地址进行比较 例 比较指针变量逆序数组元素 #include void main( ) int a10=1, 3, 5, 7, 9, 11, 13, 15, 17, 19; int *p1= ,程序运行结果: a0=19 a1=17 a2=15 a9=1,指针变量的比较运算经常用于数组,判定两个指针变量所指向的数组元素的位置先后。,8.2.4 指针变量的运算,4. 两个指针变量相减:当两个指针变量指向同一数组中的不同数组元素时,指针变量相减的差值即为两个指针变量相隔的元素个数。 例 相减指针变量逆序数组元素 #include void main( ) int a10=1, 3, 5, 7, 9, 11, 13, 15, 17, 19; int *p1= ,程序运行结果: a0=19 a1=17 a2=15 a9=1,8.2.5 指针变量作为函数参数,特点: 将变量地址作为实参传送到被调用函数中; 遵循“单向值传递”方式(特殊的地址值); 被调用函数不能改变实参指针的值,但可以改变实参指针所指向变量的值; 可以得到多个返回值。,8.2.5 指针变量作为函数参数,例 交换实参指针所指向变量的值 #include void swap(int *x, int *y) /*形参为相同类型的指针变量*/ int t; t=*x; *x=*y; *y=t; /*交换指针变量所指向变量的值*/ void main() int a=10, b=20; printf(“1) a=%d, b=%dn“, a, b); swap( ,程序运行结果: a=10, b=20 a=20, b=10,地址值传递,8.2.5 指针变量作为函数参数,例 交换形参指针变量的值 #include void swap(int *x, int *y) /*形参为相同类型的指针变量*/ int *t; t=x; x=y; y=t; /*交换指针变量的值*/ void main( ) int a=10, b=20, *p= ,程序运行结果: a=10, b=20 a=10, b=20,地址值传递,The End,上机实验内容: 熟悉指针和指针变量的基本概念及运算 实验教程第八章 指针 实验一(2),

    注意事项

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

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




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

    三一文库
    收起
    展开