c语言程序设计教学资料第9章---指针.ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
函数指针 如果在程序中定义了一个函数,在编译时,编译系统为函数代码分配一段存储空间,这段存储空间的起始地址,称为这个函数的指针。 可以定义一个指向函数的指针变量,用来存放某一函数的起始地址,这就意味着此指针变量指向该函数。 注意:int (*add)(int, int);与int *add(int, int);是不同的后者函数有两个整型形参,而函数的返回值时一个指针类型的数据。 函数返回指针 有关指针的小结 1.首先要准确地弄清楚指针的含义。指针就是地址,凡是出现“指针”的地方,都可以用“地址”代替,例如,变量的指针就是变量的地址,指针变量就是地址变量 要区别指针和指针变量。指针就是地址本身,而指针变量是用来存放地址的变量。 2. 什么叫“指向”?地址就意味着指向,因为通过地址能找到具有该地址的对象。对于指针变量来说,把谁的地址存放在指针变量中,就说此指针变量指向谁。但应注意:只有与指针变量的基类型相同的数据的地址才能存放在相应的指针变量中。 第9章 指针 主要内容 变量的内存地址 指针变量的定义和初始化 间接寻址运算符 函数指针 内存地址 指令和数据都保存在计算机的内存中。 内存区的每一个字节有唯一的一个编号,这就是“地址” 。地址是一个无符号整数,其字长一般与主机相同。 如果在程序中定义了一个变量,在对程序进行编译时,系统就会给这个变量分配内存单元。 只要指明要访问的内存单元的地址,就可以立即访问到该单元。 指针变量的定义 指针概念: 存放变量地址需要一种特殊的数据类型,即“指针”。 一个变量的指针就是该变量的地址(指针就是地址) 具有指针类型的变量,成为指针变量,它是专门用于存储变量地址值的变量。 如果有一个变量专门用来存放另一变量的地址(即指针),则它称为“指针变量” 一个变量的地址称为该变量的“指针”。 例如,地址2000是变量i的指针。 如果有一个变量专门用来存放另一变量的地址(即指针),则它称为“指针变量”。 上述的i_pointer就是一个指针变量。 变量名 变量值 变量的地址 说明: 定义形式:数据类型 *指针变量名 其中,数据类型表示指针变量要指向的变量的数据类型。 (2) 在定义指针变量时必须指定基类型。 例:int *p; float a; p=a; 指针变量的初始化 (1) (2) 注意: 指针变量中只能存放地址(指针),不要将一个整数(或任何其他非地址类型的数据)赋给一个指针变量。 指针只有在真正指向了一块有意义的内存后,才能访问它的内容。未初始化的指针引起非法访问内存 #include stdio.h void main ( ) { int a=100, b=10; int *pa, *pb; pa=a; //把变量a的地址赋给p1 pb =b; //把变量b的地址赋给p2 printf(″%d,%d\n″,a,b); printf(″%d,%d\n″,*pa, *pb); } pa pb 100 10 寻址方式 任何变量在存在期间总有确定存储位置,有固定的地址 如何读写内存中的数据? 通过变量的地址访问变量所在的存储单元。 两种寻址方式 直接寻址 间接寻址 直接寻址 按变量名或地址存取变量值的方式称为“直接访 问”方式 取地址运算符 %p格式字符,表示输出变量的地址值 间接寻址 通过指针变量间接存取它所指向的变量的访问方式称为“间接访问”方式 “&”和“*”两个运算符的优先级别相同,但按自右而左方向结合。 取地址运算符 使用在变量名前取变量地址,是对应类型的指针值,可赋值给类型合适的指针。 例:int a=5, *p; p=a; 我是真的,猜对了吗 间接运算符* 用来取指针指向地址的内容 *p=x=5 “&”和“*”两个运算符的优先级别相同,但按自右而左方向结合。 指针运算 a b c d 2 5 3 p 3 3 指针与函数 按值调用: 指针变量作函数参数 按地址调用(模拟按引用调用)

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档