首页 > > > C_语言中指针的妙用.pdf

C_语言中指针的妙用.pdf

C_语言中指针的妙用.pdf

上传者: 孙海 2011-05-13 评分1 评论0 下载26 收藏10 阅读量670 暂无简介 简介 举报

简介:本文档为《C_语言中指针的妙用pdf》,可适用于IT书籍领域,主题内容包含语言中指针的妙用李芳菊蒋建郑州华信学院是当今最流行的一种面向对象的程序设计语言。指针是语言中的一个重要概念,也是中最难掌握的内容之一。指针是一种数据符等。

语言中指针的妙用李芳菊蒋建郑州华信学院是当今最流行的一种面向对象的程序设计语言。指针是语言中的一个重要概念,也是中最难掌握的内容之一。指针是一种数据类型,具有指针类型的变量称为指针变量,指针变量存放其他变量或对象的地址,它可以有效地表示数据之间复杂的逻辑关系。正确而灵活地运用指针,可以带来许多方便,比如可以有效地表示复杂的数据结构、动态分配内存、方便地使用字符串、在调用函数时能得到多干个的值以及可以直接处理内存地址等等。!指针与函数指针与函数的结合具有丰富的内涵,例如,指针可以作为函数的参数,也可作为函数的返回值,指针可以指向函数成为函数指针,函数指针也可以用数组的元素构成函数指针数组等等。指针作函数参数,实现的是传址调用,使用传址调用方式时,调用函数的实参用地址值,被调用函数的形参用指针。调用是系统将实参的地址值赋给对应的形参指针,使形参指针指向实参变量。因此,它的实现机制是让形参的指针直接指向实参。那么,形参在函数体内的任何变化,都影响到调用函数中与之相对应的实参的值。例指针做函数参数使用实例。#(),(罗,,,(:,,,(<,=>,=!,))二”))))Α,”))’=”))))(,,))”Β=Χ))))”,“)),=”))))(:Δ,Δ,))二)))),,))=”))))(Ε(,,,<,ΦΦ===Φ,)”Γ,罗,”))(Ε(:,,,<一,ΦΗ一Ι=Β,Β==Ι,Ε,))”Γ,罗ϑΔ,Δ”))(程序氛行结果女口下Η一Β=,=ΑΚ一便ΓΒΓΓ气Β,一一>,一!!Γ,:Δ,Δ一=!,=>一从程序的结果看,函数使一用的是传值调用,形参在函数体内的任何改一变都不影响与之对应的实参的值而在函一数:使用的是传址调用,形参在函一数体内的任何变化,都影响到与之对应的一实参的值,形参和做了一次交换,这种一交换间接使得和做了交换。可见,在指<针作函数参数的传址调用中,通过改变形<参所指向变量值来改变调用函数的实参值,,即从而达到函数之间的信息传递。一ϑ指针与数姻一ϑ!通过指针访问数组元素一在中,数组的元素可以用下标来一表示,也可用指针表示,但是在实际使用中<一般都使用指针表示因为指针表示要比‘下标表示处理起来更快。中规定,数一组名可以代表数组的首地址,也就是数组Ε的第一个元素地址。这样,就可以通过指向Ε数组的指针间接访问数组元素。指针作为一一种特殊的变量,可参与关系运算、赋值运一算,也可通过算术运算对数组中某个或某Ε些指定元素进行快速操作。<#(Κ()!Λ,ΓΕ!气<、卜,ΜΝ,,一Ο=<,))))山Ε,))盯!!))ΠΘ!))ΠΡ!))(Η【,))Σ))Σϑ))ΣΤ))ΟΥ))ΟΘ))(Ε程序的运行结果如下Η(Γ城(Γ!该程序声明了字符数组,并进行初始化。使用语句,))))(输出了数组中的元素,在输出数组中的某个元素时可以直接使用下标来引用,也可用指针来表示。如在程序中定义了一个指向数组名为的指针Σ,因数组名可以代表数组的首地址,所以Σ存放了数组的第一个元素地址,当进行,))Ο操作时,就输出了数组的第一个元素,另外指针还可进行算术运算,所以,))Σϑ))ΣΤ))ΟΥ依次输出了数组的第三个、第五个元素和第七个元素,即、和Π程序中输出表达式Σϑ的值为ΠΠ,因为Ο是字符,它的ςΛ码值是Π>,所以,该表达式值为ΠΠ,实际上是字符的ςΛ码值。使用指针进行操作,方便快捷,因此在使用中一般使用指针来表示。ϑϑ数组指针作函数参数数组名代表数组起始地址,用数组名作参数传递的是地址,即将数组起始地址传递给被调用函数的形参,既然地址可以作为参数传递,那么指向数组的指针变量当然也可以作为函数参数。例ϑ求二维数组中全部元素之和#((),,ΩΩ((,试Ξ,,<,,=Γ=)!=试」,Ε(<,Ψ((,试!,,Λ,,,斑ϑ!ΤΞ=<,Θ,Ρ,>,Π,!!,!Θ,!ΡΕ,Ο,,,Ο=【!,回二Ω((Σ,Ζ,))”,,卜”)),,运行结果Η,,=ΥΤ函数中Σ为指向数组的数组指针,它的值为ΑΞ,即ΔΞ!Ξ,指向数组的第一元素,在调用函数((时,实参为数组指针Σ值即数组元素Ξ的地址,传递给形参数组盯,这就使形参数组的起始地址也是ΔΞ,或者说,数组与数组同占一段内存单元,在函数ΩΩ((中将Ζ个元素的值相加。函数中为二维数组,而ΩΩ((函数中为一ΡΖ一一维数组,这是允许的,他们之间完全靠共享内存单元而联系起来。Θ指针与类在中,类(岛也是一种数据类型,是程序员可以用声明语句说明的数据类型。类有比,、,等基本数据类型更强大的功能,类是数据和函数的封装体。类中的成员分为两种Η数据成员和成员函数,数据成员是对类特征的描述,成员函数实现对类中数据成员的操作,是类表现其特征的渠道。在中,可以说明指向类的数据成员和成员函数的指针,以实现类在十编程中的应用。#(()Λ,岛ς从而实现函数之间的信息传递。Τϑ对象指针数组所谓指针数组指的是数组元素为指针的那类数组,对象指针数组是指该数组的元素是指向对象的指针,它要求所有数组元素都是指向同一个类类型的对象的指针。它与一般的指针数组不同的是指向对象的指针用做该数组的元素。#(),岛ςΣΗς,<=Ε,Γ飞,<况,Ε,,Σ,Η,Ε(ςΡ,ςΗΗ详Ο=ΔςΗΗ,详=ϑ,ςΗΗΣΓΚ,Σ几田=ςΗΗΓ,ςΟ=Δ,Ο一ΣΓ如Ζ(,飞程序运行结果Η!Ζ该程序中,定义了一个指向类的数据成员的指针详和一个指向类的成员函数的指针ΣΓΚ,它们分别指向类ς的数据成员和成员函数ΓΚ,程序中对指向类的成员的这两个指针进行了引用和调用,详=ϑ实际上是对详所指向的数据成员赋值,等价于=ϑ,ΣΦΣΓ旧Ζ则通过指向对象的指针Σ来调用指向类的成员函数的指针ΣΓ,等价于Σ一ΓΖ,函数的实参为Ζ,程序运行结果为!Ζ,因此通过指向类的数据成员和成员函数的指针,巧妙地实现了类在编程中的应用。Τ指针与对象Τ!对象指针一个对象一旦被创建,系统就给它分配了一个存储空间,该存储空间的起点可以像数据对象的地址一样,使用指针变量操作。对象初始化后,会占用内存空间,可以使用指针变量指向对象起始地址,称为对象指针。使用对象指针作为函数参数要比使用对象做函数参数更普遍一些。首先,使用对象指针做函数参数能实现传址调用,可在被调用函数中改变调用函数的参数对象的值,实现函数之间的信息传递其次,使用对象指针实参仅将对象的地址值传给形参,而不进行副本的复制,这样可以提高运行效率,减少时空开销。#加(),(阳<ΟΗ<==Ε,,,<==Ε(Σ(货以,,,<二=Ε(Ο,<,))))’‘,”))))(ΕΣ,Η,Β,Ε(ΗΗΟ<Β=!!!一Β=一Ε(,Αϑ<Οϑ,Θ,αα毋ΔΣΓΣ,ΔαΟΟ血,αΣ,Ε(Γ,Αϑ<货饮Ρ,ΥΑϑ一货饮Ζ,ΠΕ程序运行结果为Ηϑ,ΘΖ,Π在该程序中,有两个对象指针,一个是做成员函数Ο的参数,另一个是ϑ做一般函数细!的参数。程序执行语句αΟΔΟ,后,对象Σ、α的的数据成员值均为ϑ,Θ,在ΑΚ函数中,有两个形参,一个是对象名,另一个是指向对象的指针名,当在被调用函数中,改变对象的数据成员值和指向对象指针的数据成员值以后,只有对象指针ϑ做参数所指向的对象α的成员值发生了改变,而另一个以对象做参数,虽然形参对象的值发生改变,可实参对象Σ的成员值不会发生改变。因此程序会出现上述输出结果。说明了对象指针做函数参数时,实现的是传址调用,实参的值随着被调函数中形参值的变化而发生改变,ΟΗς,二,,」=<=!=Ε(Σ,Σ,Η,,Ε‘(ςΗΗΣ,<,))))”,”))))山Ε(<ς>,Ζ,:,ΘΡ,>ςΑΘ!=!如Θ,Δϑ,ΔΕΓ城,=!)Θ!议!!一Ο,Ε程序运行结果为ΗΡ,>,>,Ζ该程序的函数中,定义的是一个一维指针数组,它有Θ个元素,每个元素都是指向类ς对象的指针,由于,ϑ,Θ是三个被定义的ς类的对象,并且被斌了值,因此,ΔΘ,Δϑ,Δ!分别是三个对象的地址值,用它们给对象指针数组的三个元素赋值,即Α!、Ξ、ΑϑΞ分别指向类ς中对象Θ、ϑ、。程序最后通过Γ循环语句将指针数组的三个元素所指向的对象值输出显示。一Ρ,一

精彩专题

热门资料

一种基于阈值的AVC自适应帧内编码算法.pdf

ProE零件设计高级篇(下).pdf

lm393中文资料.pdf

MMSZ5221ET1-D.pdf

该用户的其他资料

  • 名称/格式
  • 评分
  • 下载次数
  • 资料大小
  • 上传时间

用户评论

0/200
    暂无评论
上传我的资料

相关资料换一换

资料评价:

/ 2
所需积分:1 立即下载
返回
顶部
举报
资料
关闭

温馨提示

感谢您对爱问共享资料的支持,精彩活动将尽快为您呈现,敬请期待!