- 1、本文档共84页,可阅读全部内容。
- 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.3.2和6.3.4不要求)6.4指针和字符串6.5通过指针访问数组(6.5.3和6.5.4不要求)6.6指针访问动态内存6.7引用概念本章教学要求:掌握指针、指针变量、目标变量的基本概念;掌握指针变量的声明和初始化,指针的运算;掌握指针作为函数的参数,指针和字符串的关系,指针和数组的关系;掌握void指针的应用,并能通过使用指针作为函数的参数;使用指针访问字符串、一维数组和二维数组;使用指针访问动态内存;掌握引用的声明和使用。上节内容回顾内存空间的访问形式通过变量名直接访问通过地址间接访问指针、指针变量、目标变量指针变量的声明和初始化关于内存地址内存空间的访问方式通过变量名直接访问通过地址间接访问取地址运算符:例:intvar;则var表示变量var在内存中的起始地址小结几个概念:指针,指针变量,目标变量符号*:在定义中表示变量为指针变量int*i_pointer=i;运算符::取地址运算符*:指向运算符
*i_pointer=3;例1指针的概念#includeiostream.hvoidmain(){inta;int*pa=a;a=10;couta:aendl;cout“*pa:*paendl;cout“a:aendl;coutpa:paendl;coutpa:paendl;}6.2指针的运算表6.1指针的运算6.2.1指针的赋值运算指针变量名=地址指针的赋值运算一定是地址的赋值。用来对指针变量赋值的可以是:同类型变量的地址;同类型的已经初始化的指针变量;其他同类型的指针。此外,也可以用0或者NULL对指针变量赋值。使得变量包含的是“空指针”,即不指向任何的内存物理地址。指针的赋值运算“地址”中存放的数据类型与指针类型必须相符。必须注意:不同类型的指针是不可以互相赋值的。在指针赋值时,不存在类型自动转换的机制。向指针变量赋的值必须是地址常量或变量,不能是普通整数。但可以赋值为整数0,表示空指针。例6.1观察以下指针赋值运算的结果。如果将注释去掉,结果将如何?#includeiostreamusingnamespacestd;voidmain(){intva1=100,*pva1;floatvf1=1.0,*pvf1,*pvf2;int*pva2=NULL;coutvalueofpva2ispva2endl;pva1=va1;pvf1=pvf2=vf1;coutpva1va1endl;coutpvf1pvf2endl;coutpva1endl;coutpvf1endl;coutpvf2endl;//pvf1=pva1;}例指针的定义、赋值与使用#includeiostream.hvoidmain(){ int*i_pointer; //声明int型指针i_pointer inti; //声明int型数i i_pointer=i; //取i的地址赋给i_pointer i=10; //int型数赋初值 coutOutputinti=iendl;//输出int型数的值 coutOutputintpointeri=*i_pointerendl;//输出int型指针所指地址的内容}6.2.2间接引用运算间接引用运算符“*”是一种一元运算符,它和指针变量连用,对指针所指向的内存地址单元进行间接访问。使用的格式是: *指针变量如果指针变量iptr指向整型变量va,*iptr就是变量va的内容例6.2对变量的直接访问和间接访问:写出以下程序运
文档评论(0)