C语言程序设计 课件 第6章 指针与引用.pptx

C语言程序设计 课件 第6章 指针与引用.pptx

  1. 1、本文档共185页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

《程序设计》1第6章指针与引用

《程序设计》26.1指针6.2指针和数组6.3指针类型形参6.4数组类型形参6.5字符指针形参6.6函数指针和函数指针变量6.7返回数据对象指针的函数目录

术语地址在C程序中定义的变量,在程序被编译时,系统会给这些变量分配内存单元,编译系统根据在程序中给出的变量的类型,给变量分配一定长度的空间内存中的每一个字节有一个编号,被称为“地址”。指针通过地址能找到相应的变量,也就是说,地址指向某个变量,所以,这样的地址也被称为“指针”。

指针:带类型的地址在C程序中,指针(变量的地址)包括:变量的位置信息(变量在内存中的编号,也就是纯地址);该地址所指向的数据的类型信息。

变量的地址、变量的值变量的地址(指针)、变量的值(变量的地址中所存储的内容)在此前的程序中,通过变量名来引用变量的值,这种直接按变量名引用变量值的访问,称为“直接访问”。通过该指针获得对应变量的地址,从而访问变量的值,称为“间接访问”。

《程序设计》66.1指针指针是C语言中用于表示程序对象地址的一类数据指针的作用表现在:间接引用它所指的对象描述数据和数据之间的关系,以便构造复杂的数据结构利用各种类型指针形参,能使函数增加活力指针与数组结合,使引用数组元素的形式更加多样、访问数组元素的手段更加灵活熟练正确应用指针能写特别紧凑高效的程序……

《程序设计》7(1)变量地址与变量内容程序中的变量在内存中占据一定的存储单元,存储单元的开始地址称为变量的地址,在存储单元中存储的数据信息称为变量的内容数据对象在程序中用变量与其对应,程序用变量定义引入变量、指定变量的类型和名编译系统根据类型确定变量所需的内存空间的字节数量和它的值的表示形式,检查程序对变量操作的合法性,对合法的操作翻译出正确的计算机指令变量的名供程序引用它,程序按名引用变量的内容或变量的地址

《程序设计》8变量地址与变量内容(续)对于代码:intx=1;x=x+2“x=x+2;”中的第一个x表示引用变量x的地址;第二个x表示引用变量x的内容该语句的意义是:完成取x的内容,加上2的计算,并将计算结果存入变量x的地址所对应的单元中在程序执行时,源程序中按名对变量的引用,已被转换成按地址引用,利用变量的地址或取其内容或存储值

《程序设计》9(2)指针变量及其所指向的变量指针变量取地址值的变量,用于存放某个变量的地址当指针变量p的值为变量v的地址时,就说指针变量p指向变量v指针变量所指向的变量的类型在指针变量定义时说明

《程序设计》10指针变量定义定义指针变量的一般形式为:类型*标识符;标识符是指针变量的名,标识符之前的符号“*”,表示该变量是指针变量;最前面的“类型”,表示该指针变量所指向的程序对象的类型比如语句:inti,*ip;分别定义一个整型变量i和一个能指向int型变量的指针变量ip指针变量定义时也可指定初值,如intj;int*intpt=j;在定义整型指针变量intpt时,给它初始化为整型变量j的地址

《程序设计》11指针变量及其所指向的变量运算符:取变量的地址;x的值就是变量x的地址给定指针变量p和整型变量x,若p=x,则x是p所指向的变量变量的地址也可作为一种值被存储和运算。源程序除能按名引用变量外,也可利用变量的地址引用变量按变量名引用变量习惯称为直接引用将变量A的地址赋给指针B,借助于指针变量B引用变量A称为对A的间接引用

《程序设计》12(3)有关指针的几个概念指针类型指针所指向的类型指针的值,或者叫指针所指向的内存区指针本身所占据的内存区

《程序设计》13指针类型从语法的角度看,只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。这是指针本身所具有的类型。例如int*ptr;//指针的类型是int*,ptr存放int变量的地址char*ptr;//指针的类型是char*,ptr存放char变量的地址int**ptr;//指针的类型是int**int(*ptr)[3];//指针的类型是int(*)[3]int*(*ptr)[4];//指针的类型是int*(*)[4]

int**a:二级指针,表示a所指向的地址里面存放的是一个指向int类型的指针;即,a指向的地址里面存放的是一个指向int的一级指针。《程序设计》14

【例6.1.5】a)inta;表示一个内存空间,这个空间用来存放一个整数(int);b)int*a;表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个存放整数的空间,即a)中提到的空间;c)int**a;表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个存放指针的空间,并

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档