C语言程序设计 作者 许薇 武青海 第七章1.pptVIP

C语言程序设计 作者 许薇 武青海 第七章1.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
j 第七章 地址和指针 信息工程学院 第7章 地址和指针 指针是C语言中广泛使用的一种数据类型。 如果在程序中定义了一个变量,在对程序进行编译时系统会给这个变量分配内存单元,内存单元编号也叫做地址。 ● 地址和指针的概念 ● 指针变量 ● 指向函数的指针 ● 对指针变量的操作 ● 函数之间地址值的传递 ● 通过实参向函数传递函数名或指向函数的指针变量 ● 传给main函数的参数 7.1 地址和指针的概念 在计算机中,所有的数据都是存放在存储器中的。一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数不等,如整型量占4个字节单元,字符型量占1个字节单元等。为了正确地访问这些内存单元,必须为每个内存单元编上号。根据一个内存单元的编号即可准确地找到该内存单元。既然根据内存单元的编号或地址就可以找到所需的内存单元,所以通常也把这个地址称为指针。内存单元的指针和内存单元的内容是两个不同的概念,下面用一个通俗的例子来说明它们之间的关系。用户到银行去存取款时,银行工作人员将根据用户的账号去找存款单,找到之后在存单上写入存款、取款的金额。在这里,账号就是存单的指针,存款数是存单的内容。对于一个内存单元来说,单元的地址即为指针,其中存放的数据才是该单元的内容。在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。因此,一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针。 7.2 指 针 变 量 7.2.1 指针变量的定义 所谓变量的指针,实际上指变量的地址。变量的地址虽然在形式上好像类似于整数,但在概念上不同于以前介绍过的整数,它属于一种新的数据类型,即指针类型。一般用“指针”来指明这样一个表达式x的类型,而用“地址”作为它的值,也就是说,若x为一整型变量,则表达式x的类型是指向整数的指针,而它的值是变量x的地址。同样,若 double d;则d的类型是指向双精度数d的指针,而d的值是双精度变量d的地址。所以,指针和地址是用来叙述一个对象的两个方面。虽然x、d的值分别是整型变量x和双精度变量d的地址,但x、d的类型是不同的,一个是指向整型变量x的指针,而另一个则是指向双精度变量d的指针。在习惯上,很多情况下指针和地址这两个术语混用了。 可以用下述方法来定义一个指针类型的变量。 int *ip; 指针变量的一般定义为 ? 类型标识符 *标识符; 其中标识符是指针变量的名字,标识符前加了“*”号,表示该变量是指针变量;而“类型标识符”表示该指针变量所指向的变量的类型。一个指针变量只能指向同一种类型的变量,也就是说,不能定义一个指针变量,既能指向一整型变量又能指向双精度变量。 指针变量在定义中允许带初始化项,例如: int i,*ip=i; 这里是用i对ip初始化,而不是对*ip初始化。 7.2.2 指针变量的引用 【例7-1】指针变量的使用。 main() { int a,b; int *pointer_1,*pointer_2; a=100;b=10; pointer_1=a; pointer_2=b; printf(%d,%d\n,a,b); printf(%d,%d\n,*pointer_1,*pointer_2); } 7.3 指向函数的指针 7.3.1 用函数指针变量调用函数 在C语言中,指针变量也可以指向一个函数。我们已经知道代码也是有地址的,一个函数在编译时会被分配给一个入口地址,这个入口地址就是该函数中第1条指令的地址,这就是该函数的指针。当调用一个函数时,除了通过函数名来调用以外,还可以通过指向该函数的指针变量来调用。一个指向函数的指针其初始值不能为空,因为它在使用之前必须被赋予一个真实的函数地址。指向函数的指针变量的一般定义形式如下(其中的函数类型是指函数返回值的类型): 函数类型?(*指针变量名)?(); 7.3.2 用指向函数的指针作函数参数 参数型函数指针与一般的函数指针声明相同,只是声明位置不同。一般函数指针可以声明成全局型或区域型变量,而参数型函数指针则直接声明于函数的参数列表中,如下所示: 返回值数据类型 函数名(参数1数据类型,参数2数据类型,……, 返回值数据类型 (*函数指针名称)(参数1数据类型,参数2数据类型,…)); 7.4 对指针变量的操作 7.4.1 通过指针来引用一个存储单元 C语言提供了一个称做“间接访问运算符”(也称间址寻址运算符)的单目运算符:“*”。当指针变量中存放了一个确切的地址值时,就可以用“间接访问运算符”通过指针来引用该地址

文档评论(0)

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

1亿VIP精品文档

相关文档