- 1、本文档共43页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
1关于内存地址内存空间的访问方式通过变量名访问通过地址访问地址运算符:例:intvar;则var表示变量var在内存中的起始地址指针
2声明例:inti;int*i_pointer=i;指向整型变量的指针指针变量的概念概念指针:内存地址,用于
间接访问内存单元指针变量:
用于存放地址的变量20003i_pointer*i_pointeri2000内存用户数据区变量i变量j变量
i_pointer362000200020043010引用例1:i=3;例2:*i_pointer=3;指针
3指针变量的初始化语法形式存储类型数据类型*指针名=初始地址;例:int*pa=a;注意事项用变量地址作为初值时,该变量必须在指针初始化之前已说明过,且变量类型应与指针类型一致。可以用一个已赋初值的指针去初始化另一个指针变量。不要用一个内部auto变量去初始化static指针。指针
4指针变量的赋值运算指针名=地址“地址”中存放的数据类型与指针类型必须相符。向指针变量赋的值必须是地址常量或变量,不能是普通整数。但可以赋值为整数0,表示空指针。指针的类型是它所指向变量的类型,而不是指针本身数据值的类型,任何一个指针本身的数据值都是unsignedlongint型。允许声明指向void类型的指针。该指针可以被赋予任何类型对象的地址。例:void*general;指针
5例6-5指针的定义、赋值与使用#includeiostreamusingnamespacestd;voidmain(){ 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型指针所指地址的内容}指针
程序运行的结果是:Outputinti=10Outputintpointeri=106
7例6-6void类型指针的使用voidvobject;//错,不能声明void类型的变量void*pv; //对,可以声明void类型的指针int*pint;inti;voidmain()//void类型的函数没有返回值{ pv=i; //void类型指针指向整型变量//void指针赋值给int指针需要类型强制转换:pint=(int*)pv;}指针
8指向常量的指针不能通过指针来改变所指对象的值,但指针本身可以改变,可以指向另外的对象。例1char*name1=John;//name1是一般指针*name1=A;//编译正确,运行出错例2constchar*name1=John;//指向常量的指针chars[]=abc;name1=s;//正确,name1本身的值可以改变*name1=1;//编译时指出错误指针
9指针类型的常量若声明指针常量,则指针本身的值不能被改变。例:char*constname2=John;name2=abc;//错误,指针常量值不能改变指针
10指针变量的算术运算指针与整数的加减运算指针p加上或减去n,其意义是指针当前指向位置的前方或后方第n个数据的地址。这种运算的结果值取决于指针指向的数据类型。指针加一,减一运算指向下一个或前一个数据。例如:y=*px++相当于y=*(px++)
(*和++优先级相同,自右向左运算)指针
papa-2pa-1pa+1pa+2pa+3*(pa-2)*pa*(pa+1)*(pa+2)*(pa+3)*(pa-1)short*pa11指针
pb-1pbpb+1pb+2*(pb-1)*pb*(pb+1)*(pb+2)long*pb12指针
13关系运算指向相同类型数据的指针之间可以进行各种关系运算。指向不同数据类型的指针,以及指针与一般整数变量之间的关系运算是无意义的。指针可以和零之间进行等于或不等于的关系运算。例如:p==0或p!=0赋值运算向指针变量赋的值必须是地址常量或变量,
您可能关注的文档
- 深圳名通科技大数据分析产品介绍材料应用系统.pdf
- 2025年黑龙江省《人文科技常识》必刷100题试卷带解析及参考答案1套.docx
- 2025年黑龙江省《人文科技常识》必刷100题试卷带解析及1套完整答案.docx
- 2025年黑龙江省《人文科技常识》必刷100题试卷带解析及一套参考答案.docx
- 寒假实习报告心得体会_1.pdf
- 2025年黑龙江省《人文科技常识》必刷100题试卷带解析一套.docx
- 2025年黑龙江省《人文科技常识》必刷100题试卷带解析加答案.docx
- 寒假实习报告心得体会.pdf
- 2025年黑龙江省《人文科技常识》必刷100题试卷带解析【重点】.docx
- 2025年黑龙江省《人文科技常识》必刷100题试卷带解析【考试直接用】.docx
文档评论(0)