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

C++程序设计PPT电子课件教案-第六章 指针参考.ppt

C++程序设计PPT电子课件教案-第六章 指针参考.ppt

  1. 1、本文档共182页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C程序设计PPT电子课件教案-第六章指针参考

C++程序设计 第六章 指针 6.0 序:指针的优势 序:指针的优势 有效的表示复杂的数据结构 能动态的分配内存 更为方便的使用字符串 有效而方便的使用数组 调用函数时能得到多个返回值 能直接处理内存地址 地址和指针 内存单元与地址 内存单元是以字节为单位,每个字节都有一个编号(即“地址”)。如果将内存比作一个旅馆,内存单元就好比“房间号”,而实体则好比“旅客”。这些“旅客”(实体)中,有单人型(char),还有团体型(数组等)。每个“实体”占用的内存单元是不同的。如: char a;int b;float c;int d[3];int max( ) 内存单元与地址 计算机的内存储器被分割成许多相同的连续存储单元,相应每个存储单元都有一个唯一的编号,称之为地址。 假设程序里定义了3个变量i,j,k,编译时系统分配了2000和2001两个字节给变量i, 2002和2003给变量j, 2004和2005给变量k,如右图所示。在表内,变量的标识符与存储地址一一对应,运行程序时,对变量值的存取都是通过地址进行的。 内存单元与地址 变量的读取方式 方式: 直接访问:按变量的地址进行存取 间接访问:将变量的地址存放在另一个变量中的方式 图示: 直接访问: 实体地址的表示 实体地址的表示: 实体地址表示法1:直接访问(实体名) 普通变量a,b,c —— a,b,c 数组d[3] —— d(数组名), d[0],d[1],d[2] 对二维数组,可用单下标法表示每行首地址。 如 对char x[3][4],可用x[0]、x[1]、x[2]分别表示其第 一、二、三行的首地址。 函数max( ) —— max(函数名) “入口地址” 取地址运算符(适用于普通变量或数组元素) 实体地址表示法2:间接访问(指针) 适合于地址运算(加减等) 指针 指针就是变量、数组、函数等的存储地址。 指针变量 变量的指针和指向变量的指针变量 指针变量的定义: 指针变量的引用: 指针变量的赋值: 指针变量的示例: 变量与指针 变量的指针就是变量的地址 用来存放变量地址的变量是指针变量 指针变量用来指向另一个变量 为了表示指针变量和他所指向的变量之间的关系,在C++中用“*”符号表示指向。 指针变量的定义 6.2.1 指针变量的定义 指针变量的定义 请看以下变量声明语句 int a,*p1; char b,*p2; a,b 普通变量(存放某个数值或字符) p1,p2 指针变量(存放某个实体的地址) 指针变量的定义 指针的存放(三步曲) ①定一个以普通变量,如:int x ②定义一个指针变量,如:int *px ③将指针变量有所指向,如:px=x 图示: 指针变量的定义 指针变量的定义: 格式:数据类型 *指针变量名 注释: ①指针变量所占空间:一个机器字长(2B) ②指针变量只能存放地址  如:p1=100 × 指针变量的引用 对指针变量施加*运算,则代表取指针所指向的单元的内容。这里,*p与变量i是等价的。 区分:*运算符在不同场合的作用,编译器能够根据上下文环境判别*的作用。 int a,b,c; int * p; (*表示定义指针) p = a; (将变量a的地址存放到指针变量p中) *p = 100; (*表示指针运算符,将100赋值给*p,即指针所指向的实体) c = a * b; (*表示乘法运算符) 指针变量的引用 指针变量的引用: 两个运算符: ①——取地址运算符 ②*——取地址里的内容 注: ① ,*同属单目运算符,结合性自右至左 如: *p→ (*p) * x → * ( x) ② ,*为一对逆运算 如:若 int a, *p; p=a; 则 *p = a = p *a = a = *p 注意——不同的*p 以下程序中哪些语句是错误的? main() { int a,p,*p; a=3; p=3; /*或者 p=a;*/ p=a; *p=a; /*或者*p=3*/ } 有关*p的小结 变量声明时,*p表示定义了一个用来存放变量地址而非数据(数值、字符等)的指针变量。 程序中引用时,*p表示取指针变量p所指变量的值。 指针变量的

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档