欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > PPT文档下载
    分享到微信 分享到微博 分享到QQ空间

    C语言程序设计第十八讲 指针(1).ppt

    • 资源ID:1135588       资源大小:443.50KB        全文页数:19页
    • 资源格式: PPT        下载积分:10积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要10积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    C语言程序设计第十八讲 指针(1).ppt

    1、C语言程序设计基础主讲人:庞新苗手机:13560715936第十八讲:指针(1)指针变量主要内容:主要内容:1、指针变量的定义和引用;、指针变量的定义和引用;2、指针变量作为函数参数;、指针变量作为函数参数;一、指针变量例:利用指针变量访问整型、实型、字符型变量。例:利用指针变量访问整型、实型、字符型变量。main()int num_int=12,*p_int;/*定义一个指向定义一个指向int型数据的指针变量型数据的指针变量p_int*/float num_f=3.14,*p_f;/*定义一个指向定义一个指向float型数据的指针变量型数据的指针变量p_f*/char num_ch=p,*p

    2、_ch;/*定义一个指向定义一个指向char型数据的指针变量型数据的指针变量p_ch*/p_int=&num_int;/*取变量取变量num_int的地址,赋值给的地址,赋值给p_int*/p_f=&num_f;/*取变量取变量num_f的地址,赋值给的地址,赋值给p_f*/p_ch=&num_ch;/*取变量取变量num_ch的地址,赋值给的地址,赋值给p_ch*/printf(num_int=%d,*p_int=%dn,num_int,*p_int);/*符号符号*p_int用来访问用来访问p_int指向的地址空间的数据指向的地址空间的数据*/printf(num_f=%4.2f,*p_f

    3、=%4.2fn,num_f,*p_f);printf(num_ch=%c,*p_ch=%cn,num_ch,*p_ch);1、指针的概念:、指针的概念:内内存存是是以以一一个个字字节节为为单单位位的的连连续续的的存存储储空空间间,每个内存每个内存单单元都有一个元都有一个编编号,称号,称为为内存地址。内存地址。请看下图,变量请看下图,变量i的地址是的地址是1000,变量,变量 i的内容是的内容是30。301000i 用另一个变量记住用另一个变量记住i的地址,这个变量的地址,这个变量就是指针类型的变量,一般称为指针变量。就是指针类型的变量,一般称为指针变量。因此,一个指针变量的值就是某个内存单因此

    4、,一个指针变量的值就是某个内存单元的地址,称为某内存单元的指针。元的地址,称为某内存单元的指针。301000i1000p 用用p变量记住了变量记住了i的地址,的地址,p的数据类的数据类型就是指针类型。型就是指针类型。2、指针变量的定义:、指针变量的定义:指针变量的定义格式:指针变量的定义格式:指指针针所所指指对对象象的的数数据据类类型型 *指指针针变变量量名名1,*指指针针变变量量名名2,;定义格式中的定义格式中的“*”表示变量是一个指针变量。表示变量是一个指针变量。int*p;表示表示p是一个指针变量,是一个指针变量,p指向的存指向的存储单元是整型的。储单元是整型的。注意,注意,指针变量与其

    5、他变量一样,如果是指针变量与其他变量一样,如果是自动变量并且未赋值,指针变量的值将是不定自动变量并且未赋值,指针变量的值将是不定值。如果想让值。如果想让p p的内容是的内容是i i的地址,需要做一个的地址,需要做一个取地址运算。取地址运算。定义指针的目的是为了通过指针去访问内存单元。定义指针的目的是为了通过指针去访问内存单元。运算符运算符“*”写在指针变量的前面,就是通写在指针变量的前面,就是通过该指针访问它所指向的存储单元。我们在上过该指针访问它所指向的存储单元。我们在上面三条语句后面,再加上一条执行语句,变成:面三条语句后面,再加上一条执行语句,变成:int i;/*定义整型变量定义整型变

    6、量i */int*p;/*定义指针变量定义指针变量p */p=&i;/*p指向指向i */*p=3;/*使使i的内容为的内容为3 */最后一句是将最后一句是将p指向的存储单元指向的存储单元i的内容赋值为的内容赋值为3。3、指针和指针变量:、指针和指针变量:.2000200420062005整型变量i10变量i_pointer200120022003指针:一个变量的地址指针变量:专门存放变量地址的变量叫2000指针指针变量 变量的内容 变量的地址指针变量变量变量地址(指针)变量值指向地址存入指针变量&与与*运算符运算符含义含义含义含义:取变量的地址取变量的地址单目运算符单目运算符优先级优先级:2

    7、结合性结合性:自右向左自右向左含义含义:取指针所指向变量的内容取指针所指向变量的内容单目运算符单目运算符优先级优先级:2结合性结合性:自右向左自右向左两者关系:互为两者关系:互为逆运算逆运算理解理解.2000200420062005整型变量整型变量i10变量变量i_pointer2001200220032000指针变量指针变量i_pointer-指针变量,它的内容是地址量指针变量,它的内容是地址量*i_pointer-指针的指针的目标变量目标变量,它的内容是数据,它的内容是数据&i_pointer-指针变量占用内存的地址指针变量占用内存的地址200010i_pointer*i_pointer&

    8、i_pointerii_pointer&i&(*i_pointer)i *i_pointer *(&i)i_pointer =&i =&(*i_pointer)i =*i_pointer =*(&i)指针变量指针变量指针变量指针变量与其与其所指向的变量所指向的变量之间的关系之间的关系指针变量的定义一般形式:存储类型 数据类型 *指针名;3变量变量i2000i_pointer*i_pointeri*i_pointer&ii_pointeri=3;*i_pointer=33变量变量i2000i_pointer*i_pointeri*i_pointer&ii_pointeri=3;*i_pointe

    9、r=3合法标识符合法标识符指针变量本身的存储类型指针变量本身的存储类型指针的目标变量的数据类型指针的目标变量的数据类型表示定义指针变量表示定义指针变量不是不是*运算符运算符例例 int*p1,*p2;float *q;static char *name;注意:注意:1、int *p1,*p2;与与 int *p1,p2;2、指针变量名是指针变量名是p1,p2,不是不是*p1,*p23、指针变量只能指向定义时所规定类型的变量指针变量只能指向定义时所规定类型的变量4、指针变量定义后,、指针变量定义后,变量值不确定变量值不确定,应用前必须先赋值,应用前必须先赋值指针变量的初始化指针变量的初始化一般形

    10、式:一般形式:存储类型存储类型 数据类型数据类型 *指针名指针名=初始地址值;初始地址值;赋给指针变量,赋给指针变量,不是赋给目标变量不是赋给目标变量例例 int i;int *p=&i;变量必须已说明过变量必须已说明过类型应一致类型应一致例例 int *p=&i;int i;例例 int i;int *p=&i;int *q=p;用已初始化指针变量作初值用已初始化指针变量作初值例例 main()int i;static int *p=&i;.()不能用不能用autoauto变量的地址变量的地址去初始化去初始化staticstatic型指针型指针例例 main()int i=10;int *p

    11、;*p=i;printf(“%d”,*p);危险!危险!例例 main()int i=10,k;int *p;p=&k;*p=i;printf(“%d”,*p);指针变量必须指针变量必须先赋值先赋值,再使用再使用.2000200420062005整型变量整型变量i10指针变量指针变量p200120022003随机随机零指针与空类型指针零指针与空类型指针零指针:零指针:(空指针空指针)定义定义:指针变量值为零指针变量值为零表示:表示:int *p=0;p p指向地址为指向地址为0 0的单元的单元,系统保证该单元不作它用系统保证该单元不作它用表示指针变量值表示指针变量值没有意义没有意义#defin

    12、e NULL 0int *p=NULL:p=NULL与未对与未对p赋值不同赋值不同用途用途:避免指针变量的非法引用避免指针变量的非法引用在程序中常作为在程序中常作为状态状态比较比较 例例 int *p;.while(p!=NULL).void *类型指针类型指针表示表示:void *p;使用时要进行使用时要进行强制类型转换强制类型转换例例 char *p1;void *p2;p1=(char *)p2;p2=(void*)p1;表示不指定表示不指定p p是指向哪一种是指向哪一种类型数据的指针变类型数据的指针变量量4、指针的引用、指针的引用main()int a;int*pa=&a;a=10;p

    13、rintf(a:%dn,a);printf(*pa:%dn,*pa);printf(&a:%x(hex)n,&a);printf(pa:%x(hex)n,pa);printf(&pa:%x(hex)n,&pa);运行结果:运行结果:a:10*pa:10&a:f86(hex)pa:f86(hex)&pa:f88(hex).f86f8af8cf8b整型变量整型变量a10指针变量指针变量paf87f88f89f86例例 输入两个数,并使其从大到小输出输入两个数,并使其从大到小输出main()int*p1,*p2,*p,a,b;scanf(%d,%d,&a,&b);p1=&a;p2=&b;if(ab)

    14、p=p1;p1=p2;p2=p;printf(a=%d,b=%dn,a,b);printf(max=%d,min=%dn,*p1,*p2);运行结果:运行结果:a=5,b=9 max=9,min=5.指针变量指针变量p1 指针变量指针变量p20002008200220042006 指针变量指针变量p2 整型变量整型变量b 整型变量整型变量a5200692008200620082006二、指针变量作为函数参数二、指针变量作为函数参数地址传递地址传递特点:特点:共享内存共享内存,“双向双向”传递传递swap(int x,int y)int temp;temp=x;x=y;y=temp;main()

    15、int a,b;scanf(%d,%d,&a,&b);if(ab)swap(a,b);printf(n%d,%dn,a,b);例例 将数从大到小输出将数从大到小输出.20002008200A2002200420065变量变量a 变量变量b(main)9 变量temp 变量y 变量x(swap)559 59COPY二、指针变量作为函数参数地址传递 特点:特点:共享内存共享内存,“双向双向”传递传递swap(int x,int y)int temp;temp=x;x=y;y=temp;main()int a,b;scanf(%d,%d,&a,&b);if(ab)swap(a,b);printf(n

    16、%d,%dn,a,b);例例 将数从大到小输出将数从大到小输出值传递值传递.20002008200A2002200420065变量变量a 变量变量b(main)9运行结果:运行结果:5,9swap(int *p1,int *p2)int p;p=*p1;*p1=*p2;*p2=p;main()int a,b;int*pointer_1,*pointer_2;scanf(%d,%d,&a,&b);pointer_1=&a;pointer_2=&b;if(ab)swap(pointer_1,pointer_2);printf(n%d,%dn,a,b);.20002008200A200220042006200C200E2010.59整型变量整型变量a 整型变量整型变量b(main)指针指针pointer_1指针指针pointer_220002002(swap)指针指针p1指针指针p2整型整型p5920002002COPY5例例 将数从大到小输出将数从大到小输出作业作业(237)输入三个数,利用指针的知识求输入的三个输入三个数,利用指针的知识求输入的三个术的最大值和最小值。术的最大值和最小值。


    注意事项

    本文(C语言程序设计第十八讲 指针(1).ppt)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922