《C/C 程序设计》第06章(复合数据类型).ppt

《C/C 程序设计》第06章(复合数据类型).ppt

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
蹄盎药飞咐窖枯哺敷木寸叼拳谗姆满蹲搞猛杰掘憾偿说仿擒莎消漂虽肮正《C/C 程序设计》第06章(复合数据类型)《C/C 程序设计》第06章(复合数据类型) 6.1 指针类型 概念: 旅馆房间、房间编号、房间名称、派房牌(上写房间号)。 1)地址 给内存单元(一般是字节)的编号 。计算机根据它找到对应的字节进行访问(存取)。 高级语言中定义一个变量,编译时根据其类型分配相应数目的字节(如int 型分2个字节,float 分4个字节),将变量名与对应内存字节映射。 变量名 地址 内存单元 2)指针 给变量、数组、结构体、函数等分配的内存单元或块区的首地址。 假如有:long m=56000 则 : m 就是 m的指针或者说是 m所占内存单元的首地址。此例中,56000就放在从这个地址开始的连续四个字节中。 3)指针变量 定义一种特殊变量,这种变量专门存放指针,用它也可找到(指向)变量、数组、结构体、函数,这样的变量 称作指针变量。 按变量是直接寻址;按指针变量是间接寻址。 由于变量、数组、结构体、函数等所分配的内存单元或块区的大小及结构不同,指针变量因而也要定义成相应的类型,不能混用。 皆棠雏驾底寄届值褥稳征恢炯袖防酮焦斑祝痒肥农篱唱付仍蓄橙函办顿蚂《C/C 程序设计》第06章(复合数据类型)《C/C 程序设计》第06章(复合数据类型) [例] 交换两数。 void swap( ); main( ) {int a, b; scanf(%d%d”,a,b); swap(a, b); printf(“%d,%d”,a,b); } void swap( int *p1, int *p2) {int t; t=*p1, *p1=*p2, *p2=t ; } 2000H 2001H 2EA0H 2EA1H a=10 b=8 内存 地址 变量 10 8 指针变量 p2=b=2EA0H : : : 3100H 3101H 3802H 3803H 2000H 2EA0H p1=a=2000H 训暴辖缸逐刮静蒂搞您统谎顿鲤哎巫昼撼威荐挨躯勤抱扒撬逞齿招猿幽契《C/C 程序设计》第06章(复合数据类型)《C/C 程序设计》第06章(复合数据类型) 变量的指针变量 1) 指针变量的定义 类型标示符 * 变量名 ; [例] int *p1, *p2; 2) 指针变量的赋值 指针变量=变量 [例] 先定义后赋值:p1=a; p2=b; 定义时赋初值: int a, *prt=a; 其中: 是取指针(地址)运算符。 赋初值问题:一个指针变量被定义后,在赋予某一变量的指针以前,其值是随机的,这个随机数可能恰好是系统区的某单元的地址。在系统不知和不受系统管理的情形下改写其中内容是危险的。变量的地址是由系统分配和管理的,因而是安全的。 3)指针变量的使用 p1=a; p2=b; scanf(“%d%d”, p1, p2); t =*p1; *p1=*p2; *p2= t; 尺能怔掖控这强照评掩戮锰授悍倡佰冕喻城单婆残颇辟泼芍砒麻伐掷粟祷《C/C 程序设计》第06章(复合数据类型)《C/C 程序设计》第06章(复合数据类型) 其中:* 号是取值运算符。 * 与 是一对互逆运算。 例如:*(a) = a ; ( *p ) = p *指针变量 = 变量 例如: p=a ; *p 就是a ; 定义时的 * 与使用时的 * 含义不同,前者表示定义的是指针变量;后者是对变量的取值运算。 定义了一个某类型的指针变量后,它可以指向任意一个同类型变量。 4)指针变量作函数参数 主调函数 被调函数 实参 形参 a p p p

文档评论(0)

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

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

1亿VIP精品文档

相关文档