C++语言程序设计(中)ppt254.ppt

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

C++语言程序设计(中) 第1章 计算机与程序设计 第2章 数据类型、运算符与表达式 第3章 输入和输出 第04章 控制结构 第5章 函数 第6章 数组 第7章 指针 第9章 链表 第10章 面向对象程序设计基本概念 第11章 类与对象 第12章 类和对象的使用 第13章 运算符重载 第14章 继承 第15章 多态性 第16章 文件和流 第17章 异常 第18章 模板 第7章 指针 7.1 指针的定义 指针:具有确定属性的地址 属性决定了以该地址为起始地址的存储空间(数据单元)大小以及可以存放什么类型的数据 指针变量:可以存放指针的变量 7.1 指针的定义 char c = 7; char *chptr = c; int count = 7; int *countptr = count; 7.1 指针的定义 指针变量声明 int *myPtr; 说明了一个指向int类型的指针变量myPtr int *myPtr1, *myPtr2, i, j; 可以说明指向任何数据类型的指针 指针变量声明时可以初始化为0,NULL或某个地址 0 或 NULL: 不指向任何数据单元 (推荐使用NULL) 7.2 指针的运算 (一元运算,地址运算符) 运算结果为操作数(非register)的地址,如 int y = 5; int *yPtr; yPtr = y; 使 yPtr 指向 y 7.2 指针的运算 * (一元运算,间接引用运算符,其操作数表达式的值必须是指针),如 int *yPtr,y; yptr = y; *yptr = 7; *yptr = *yptr + 7; 7.2 指针的运算 * 和 互为 逆运算,如 int *yPtr,y; yptr = y; *yptr = 7; *yptr = *yptr + *y; **y = *yptr + *y; 7.2 指针的运算 Int v[5], * vPtr = v ; // vPtr 为3000 vPtr += 2; // 赋值后 vPtr 为3008 把 vPtr的值当作整数和 n*sizeof(int)相加,得到vPtr + n的实际值(指向后续第n个数组元素) 7.2 指针的运算 同类型指针相减 int v[5], * vPtr , * vPtr2; vPtr = v[0]; vPtr2 = v[2]; // vPtr2 - vPtr 结果为 2. 把 vPtr2和vPtr的值当作整数相减后除以 sizeof(int)(两个指针间的数组元素个数) 7.2 指针的运算 指针的关系运算 同类型指针可以进行各种关系运算 可以判断指针是否为 0或NULL 如 int v[5], * vPtr , * vPtr2; vPtr = v[0]; vPtr2 = v[2]; while( vPtr vPtr2 ) vPtr++; 7.2 指针的运算 指针的赋值运算 同类型指针可以赋值 不同类型的指针之间的赋值必须进行强制类型转换 如 int * nPtr; float f=0.5,* fPtr= f; nPtr = (int *) fPtr; 特例:void类型的指针(类型 void *) 可以指向任何类型的数据 void *类型的指针不能被复引用 可以和其他类型的指针相互赋值 7.2 指针的运算 如 void * vPtr; float * fPtr; vPtr = fPtr; fPtr = vPtr; 但下面这种情况不行,必须进行类型的强制转换 void * vPtr; float * fPtr; int * iptr; vPtr = fPtr; iPtr = vPtr; //错误 iPtr = (int *)vPtr; //正确 7.3 指针与数组 数组名是指向该数组第一个元素的常量指针 int b[5], *bPtr; bPtr = b; //等价于bPtr = b[0]; *( bPtr + 2 )=5; //等价于b[2]=5; //等价于*(b+2)=5;等价于bPtr[2]=5; //等价于(b+2)[0]=5;等价于(bPtr+1)[1]=5; 注:C++编译器把形如指针表达式[下标表达式]的下标运算转化为表达式 *(指针表达式+下标表达式)即地址+偏移量的方式 7.3 指针与数组 指针数组——数组元素可以是指针 如:int *array[10]

文档评论(0)

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

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

1亿VIP精品文档

相关文档