- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 指针 上次课的回顾 动态变量、静态变量(从变量的生存期) 全局变量、局部变量(从变量的使用范围) 局部变量与全局变量重名问题 局部变量与局部变量重名问题 变量的存储类别分:auto,register,static,extern 第8章 指针 本章讨论C语言中另一种重要的数据类型 ——指针。指针部分是C语言的重点,也是难点。 本章重点内容: 理解地址和指针变量的概念 理解指针、数组、字符串之间的紧密联系 指针作为函数参数(传引用方式) 用指针建立动态数据结构 —— 链表 什么是地址? 在程序执行过程中,所有的数据对象都存储在计算机内存储器里。任何一个数据对象在它被执行的那段期间内都有一个确定的存储位置,占据着确定数目的存储单元。且每个存储单元有一个唯一的编号,即地址。 地址在计算机内部是用二进制编码表示的,可作为程序中能够被处理的数据。 内存地址如下: 8.1 指针的概念 指针是一种特殊的变量,本质是变量,但存放的是某个变量的地址。指针变量同样具有变量名、变量数据类型和变量值。 注意内存单元的地址和内存单元的内容是两个不同的概念。(见例子pointer.cpp) 设有变量i=3,j=6,k,在内存中的存储情况如下所示: 小结 比较 内存单元的地址、内存单元的内容 直接访问、间接访问 8.2 变量的指针和指向变量的指针变量 由上所述,如果变量pa中存放的是变量a的地址,则通过pa可以间接访问a,可理解为该地址“指向”变量单元a. 通过地址能够找到所需的变量单元,就可理解为地址“指向”该变量单元,因此C中,往往形象化地称地址为“指针”。 指针:一个变量的地址就是指针。 指针变量:某一个变量专门用来存放另一变量的 地址,就称它为指针变量。 可以说: i的指针(地址)是2000,指针变量是i_point 变量的指针和指向变量的指针变量 变量的指针:即变量的地址。 指针变量:存放变量地址的变量 指针变量指向的变量:即被指的变量。“*”表示指向。 设有如下定义: int i=50,x; int *ip; 如有 ip=i; (设i的地址为2000h),则可以通过指针变量ip间接访问变量i, 例如: x=*ip; 试问这里x与i之间存在什么关系? 1. 定义一个指针变量 指针变量的一般定义为: 基类型 * 指针变量名; 例如: int *ip; int 表示该指针变量为指向整型数的指针类型的 变量, 有时也可称ip为指向整数的指针。 ip 是一个指针变量, 它专门存放整型变量的地址。 说明: 一个指针变量只能指向同一种类型的变量, 也就是说, 我们不能定义一个指针变量, 既能指向一整型变量 又能指向双精度变量。 虽然,指针变量和int型大小一样,但一般不能将 int(或其它类型)的值赋给指针变量。 一个指针变量占2个字节内存空间(可以用sizeof( ) 运算符来测试 ) 注意: 1.指针变量和其它的变量一样代表内存中的 一个存储单元。 2.只是在此存储单元中仅能存放变量的地址值。也就是说指针变量中可以存放字符型变量、整型变量、实型变量等地址,当然也可以存放指针变量的地址。 3.一个指针变量只准许存放指定类型变量的地址。 2. 指向变量的指针变量 设已定义如下: int i,j; int *pointer_1; float *pointer_2; char *pointer_3; 用下面的语句可实现对指针变量的赋值: pointer_1=i; ( 为取地址运算符) 将变量i的地址存放到指针变量pointer_1中,因此,我们就称变量pointer_1“指向”了变量i. 3. 指针变量的引用 注意事项: 既然在指针变量中只能存放地址, 因此, 在使用中不要将一个整数赋给一指针变量。下面的赋值是不合法的: 设有定义:int a,*p1,*p2,b[10]; float *p; 下面的赋值是不合法的: p1=100; p2=a; ( ×) 但相同类型的指针变量间可以相互赋值,如: p1=a; p1指向变量a p2=p1; p2指向p1所指向的变量 p1=b ; p1指向数组b(的首地址) p1=NULL; 而赋值语句:p=p1;是错误的。p和p1虽然都是指 针变量,但分别指向不同
您可能关注的文档
最近下载
- 理想KS系列 KS500 KS600 KS800 速印机中文维修手册.pdf VIP
- 理想 SF 9350 9390 9450 9250 速印机中文维修手册.pdf VIP
- 理想 SF 5450 5350 5250 5050 5430 速印机中文维修手册.pdf VIP
- 给排水国标图集-04S520:埋地塑料排水管道施工.pdf VIP
- 建筑垃圾资源再利用项目商业计划书.pptx VIP
- 智能变电站基础知识(GOOSESV介绍).ppt VIP
- 理想 ES2561 ES3761C 3791 ES5791 系列速印机中文维修手册.pdf VIP
- 产品试产评估报告(最全、最详细版).pdf VIP
- 博弈论教程(第三版).pptx VIP
- 理想 EV ES 2 3 5 系列速印机零件手册.pdf VIP
文档评论(0)