- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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]
您可能关注的文档
最近下载
- 苏教版四年级下册数学第九单元《整理与复习》全单元教学课件.pptx VIP
- 河北《绿色建筑使用说明书示范文本》.doc
- 【初中地理】河流与湖泊 第二课时 长江 课件-2025-2026学年八年级地理上学期(人教版2024).pptx VIP
- 消防验收会议纪要模板.docx VIP
- 李惠军:单元整体通观与教学评深度融合.pptx VIP
- INOVANCE汇川-MD520系列通用变频器调试手册-中文.PDF
- 2025版GOLD慢性阻塞性肺疾病诊疗指南.docx VIP
- 西北大学 普通化学 chapter 04 化学反应速率与化学动力学的初步概念.ppt VIP
- 慢性阻塞性肺疾病诊断标准.pptx VIP
- 配电箱巡视检查记录.doc VIP
原创力文档


文档评论(0)