网站大量收购闲置独家精品文档,联系QQ:2885784924

安徽科技学院C语言程序设计课件第7章 指针类型.ppt

安徽科技学院C语言程序设计课件第7章 指针类型.ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 指针类型 8.1 概述 8.2 指针变量 8.3 指针和函数 8.4 指向函数的指针变量 8.1 概述 地址 为了方便对内存的访问,每一个内存单元都有一个编号,这个编号就是内存的地址。C程序中的每一个变量,C程序的每一个函数,在内存中都会对应一定的内存单元。 C程序中的每一个函数经过编译后,生成的目标代码在内存中是连续存放的,函数目标代码的起始地址称作函数的首地址,也叫入口地址。在C语言中,函数名本身就代表着函数的入口地址。 8.1 概述 指针 指针 在计算机中,对一个内存单元的访问是通过地址来实现的,地址“指向”需要操作的内存单元。因此在C语言中,把地址形象地称为指针。 C语言中定义的变量在内存中都对应一定的内存单元,也就对应一个地址。变量对应的地址称作变量的指针。 所谓函数的指针就是函数的入口地址。 指针变量 用来存放指针数据的变量叫作指针变量。 既可以定义一个指针变量用来存放变量的地址,也可以定义一个指针变量用来存放函数的入口地址。用来存放变量地址的指针变量称作指向变量的指针变量,简称指针变量;用来存放函数入口地址的指针变量称作指向函数的指针变量。 8.1 概述 有了指向变量的指针变量的概念,对变量的访问就可以间接进行。 直接访问:利用变量名a将86送入存储单元。 a=86 间接访问:利用指针变量pointer访问变量a。 pointer=a /*变量a的地址送指针变量pointer*/ *pointer=86 /*将86送入存储单元*/ 8.2 指针变量 指针变量的定义 指针变量定义的形式为: 基类型 *指针变量名 这里“基类型”表示指针变量所指向的变量的类型,“*”表示定义的是指针变量。 例如: int *pointer; float *p1,*p2; 8.2 指针变量 指针变量的使用 指针变量的赋值 可以给指针变量赋地址值,且地址值必须是基类型变量的。为此C语言提供了取地址运算符,它的作用是取得变量所占用的存储单元的首地址。 例如,语句“int a,*pointer;”之后,可以有语句: pointer=a; 可以在定义指针变量的同时对其初始化, 例如: int a; int *pointer=a; 可以给指针变量赋空值NULL。例如: p=NULL; 通过指针访问变量 8.2 指针变量 【例8.1】通过指针变量访问变量。 main( ) {int x; /*整型变量x*/ float y; /*实型变量y*/ int *px=x; /*指向整型变量的指针变量px,并指向x*/ float *py=y; /*指向实型变量的指针变量py,并指向y */ *px=20; /*通过指针变量px给变量x赋值*/ *py=19.600; /*通过指针变量py给变量y赋值*/ *px =*px/2; /*通过指针变量px访问变量x*/ y =y+10; printf(*px=%d,*py=%6.3f\n,*px,*py); printf(x=%d,y=%6.3f\n,x,y); } 程序的执行结果为: *px=10,*py=29.600 x=10,y=29.600 8.2 指针变量 【例8.2】输入 x和y,求两个数的和。请注意分别使用x、y和px、py的异同。 main( ) {int x,y; int *px=x,*py=y; printf(using x,y:\nenter x,y:); scanf(%d%d,x,y); printf(x =%d,y= %d, x+y= %d\n,x,y,x+y); printf(*px =%d,*py= %d, *px+*py=%d\n ,*px,*py,*px+*py); printf(using px,py:\nenter x,y:); scanf(%d,%d,px,py); /*通过指针输入x,y*/ printf(x =%d,y= %d, x+y= %d\n,x,y,x+y); printf(*px =%d,*py= %d, *px+*py=%d\n ,*px,*py,*px+*py); } 8.

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档