- 1、本文档共88页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
北京邮电大学电信工程学院计算机技术中心C++大学基础教程第6章指针和引用 北京邮电大学电信工程学院 计算机技术中心指针(Pointer)是C++和C的一种数据类型。很多其他高级语言也有类似的数据类型。引用(Reference)则是C++所特有的一种数据类型。指针和引用在概念上和使用上都有相似之处,但是也有重要的差别。第六章指针和引用6.1指针的概念6.2指针的运算6.3指针和函数6.4指针和字符串6.5通过指针访问数组6.6指针访问动态内存6.7引用概念6.1指针的概念 6.1.1指针和指针变量指针是变量的地址。或者说是在内存中,存放某种类型变量的地址。例如,定义了整型变量a,a的地址就是一个指针。也可以不定义任何变量,只是指定内存某个地址开始(如0的4个字节存放整型变量,这样的地址也是指针。存放指针的变量就是指针变量。6.1.1指针和指针变量当声明了一个指针变量后,确定了三件事:变量本身在内存中所分配的地址和字节数,指针变量总是占有4个字节;系统允许的地址范围,以及地址单元内可以存放的内容;指针变量可以进行的运算。访问指针变量时,只能看到地址。只有通过这个地址,才能访问地址单元中的内容。这样的访问称为对于内存单元的间接访问。6.1.2指针变量的声明和初始化指针变量声明的格式是: 类型名*变量名1,*变量名2;例如: int*va1,*va2; char*ch1,*ch2;指针变量在声明后,变量的值(地址)是随机的。这样的指针变量是不能安全的使用的。因为其中的随机地址完全可能不是有效的数据地址。6.1.2指针变量的声明和初始化在声明指针变量时的“*”,有两个含义:声明变量va1、va2、ch1、ch2都是指针变量;说明变量va1和va2的类型是(int*)型,即指向整型变量的指针。va1和va2所指定的地址单元中,只能存放整型数据。类似地,ch1和ch2的类型是(char*)型,它们所指定的地址单元中,只能存放字符。指针变量都是有类型的.指针变量的类型就是它所指定的地址单元中存放的数据的类型。6.1.2指针变量的声明和初始化指针变量的初始化有两种方法:在声明时的初始化和声明后的初始化。声明指针变量时就进行初始化的格式是: 类型名*指针变量名=变量名;其中的变量名应该是已经声明或定义的同类型变量名。例如: charch1=’Y’,ch2=’A’; char*pch1=ch1,*pch2=ch2;6.1.2指针变量的声明和初始化也可以在声明指针变量后,用赋值的方式对它们进行初始化。例如: inti1=’Y’,i2=’A’; int*pi1,*pi2; pi1=i1; pi2=i2;没有初始化指针变量是不可以使用的。编译带有这样的指针变量的程序,编译系统会给出警告,而运行时会出现错误。6.2指针的运算表6.1指针的运算6.2.1指针的赋值运算指针的赋值运算一定是地址的赋值。用来对指针变量赋值的可以是:同类型变量的地址;同类型的已经初始化的指针变量;其他同类型的指针。此外,也可以用0或者NULL对指针变量赋值。使得变量包含的是“空指针”,即不指向任何的内存物理地址。必须注意:不同类型的指针是不可以互相赋值的。在指针赋值时,不存在类型自动转换的机制。例6.1观察以下指针赋值运算的结果。如果将注释去掉,结果将如何?#includeiostreamusingnamespacestd;voidmain(){intva1=100,*pva1;floatvf1=A,*pvf1,*pvf2;int*pva2=NULL;coutvalueofpva1ispva2endl;pva1=va1;pvf1=pvf2=vf1;coutpva1va1endl;coutpvf1pvf2endl;//pvf1=pva1;}6.2.2间接引用运算间接引用运算符“*”是一种一元算符,它和指针变量连用,对指针所指向的内存地址单元进行间接访问。使用的格式是: *指针变量如果指针变量iptr指向整型变量va,*iptr就是变量va的内容例6.2对变量的直接访问和间接访问:写出以下程序运行结果。#includeiostreamusingnamespacestd;voidmain(){charch1=a,*ch;int
您可能关注的文档
- 第1章-宇宙中的地球.ppt
- 汽车贴膜销售培训之二十四-销售员的5个错误和5种失败.pptx
- 1.3区域发展差异.ppt
- 注意体育课上的风险.ppt
- 盐的水解2-刘宏涛.ppt
- 自然环境和人类活动的差异(2)ppt.pptx
- 第二节-自然环境和人类活动的区域差异.ppt
- 双发厨房电器L7Q集成灶评测.ppt
- 05第十章--第五节--古典概型.ppt
- 1-1宇宙中的地球.ppt
- 必威体育精装版部编版三年级语文下册 基础+阅读综合练习( 6套带答案) .pdf
- 江苏省2024年普通高中学业水平合格性考试仿真模拟历史试卷03(解析版.pdf
- 必威体育精装版国家开放大学电大本科《中文学科论文写作》期末试题标准题库及答案.pdf
- 必威体育精装版国家开放大学电大《人力资源管理》期末试题标准题库及答案(试卷号.pdf
- 必威体育精装版锅炉工完整题库必背100题(含标准答案) .pdf
- 必威体育精装版北师大版数学四年级上册《期末考试卷》有答案 .pdf
- 校联考数学七年级第一学期期末质量检测试题含解析 .pdf
- 杭州市城市绿地系统规划 .pdf
- 必威体育精装版电大专科《物流学概论》单项选择筒答论述题题库及答案(试卷号.pdf
- 必威体育精装版第九届地球小博士高中组试题及答案 .pdf
文档评论(0)