- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
指针学习要点总结
指针变量名、变量所占用的存储单元、变量的地址、变量的值之间的关系:学校有一个程序语言班C1班,C1班的上课教室是J5113,这样存在以下类比关系:班级名字C1:相当于程序中定义的变量名C1班里的学生们:相当于变量的值。上课教室:相当于变量所占用的存储单元(存储空间);教室名字J5113:相当于变量的地址; 程序运行时,会把数据和程序都存放在内存中。内存是一个连续的存储空间,以字节为单位(单元),每个内存单元都有一个编号,这个编号就是内存单元的地址。在程序中,变量名实质上代表了“内存中的某个存储单元”,即如果在程序中定义了某个变量,程序编绎系统会根据该变量的数据类型,为其分配一定字节数的内存空间,并且内存的分配是连续的。这个内存空间就是该变量的存储单元。程序运行时,就可以通过变量所占存储单元的首字节编号来存取数据,该编号也为变量的地址。仿问内存里的存储单元里的内容:一般情况下,即只通过变量名来进行:编程时只需要指出变量名,通过变量名来访问变量的值,而无需知道每个变量在内存中的具体地址Scanf(“%d”, a); //系统自动根据变量名a对应(如何对应?随机还是有规律?)的内存地址1310588,找到其所分配的存储单元,并将从键盘输入的数据存放到内存中,作为变量a的值。printf(“%d”, a); //系统自动根据变量名a对应的内存地址找到其所分配的存储单元,再连续读取4个字节的数据作为变量a的值,并按指定的格式(%d)将数据输出到屏幕上。除直接通过变量名外,还可以通过指针变量来进行:指针变量指针:一种数据类型,它允许在程序中根据内存地址直接仿问存储单元由于变量的地址直接指明了变量所占用的存储单元,因此,在程序语言中形象地将“变量的地址”称为指针。指针变量定义:专门用来存放变量的地址的变量。语法格式:基类型(所指向的变量的类型)*指针变量名;例如:int a=2, *pa, *pb; //分别定义整形变量a和整形指针变量 pa、pb;其中’*’是指针类型的标识符,指出后面的pa和pb专门用来存放地址的指针变量。而’*’同时也是一个指针的“取内容运算符”,用来引用指针变量所指向的变量,即通过它可以访问指针变量所指向的变量的值(变量所在内存空间里存的内容),也就是说,带上’*’,说明*pa,和*pb都是个值(变量所在内存空间里存的内容)如char c=’A’, *pc; //定义字符型指针变量pcdouble d=2.1, *pd; //定义双精度类型指针变量dpa=a; //定义指针变量后,将变量a 的地址赋值给指针变量pa;用指针变量pa,来存放变量a的地址;即用指针变量pa指向变量apc=c; //指针变量pc指向变量cpd=d; //指针变量pd指向变量dpb=pa; //指针变量pb和pa一样,两个指针变量一起指向变量a(注:定义指针变量 pa、pb时,也可以同时给它赋值:int a=2, *pa=a;)假设在上面的例子中,系统给变量a分配的地址是3000,则指针变量及其指向如下图:对指针变量赋值,要注意的问题:对指针变量赋值时,来自该地址的变量的类型必须要和指针变量的基类型相同。如:int *pa; float f; pa=f; 就是错的指针变量中只能存放地址(指针)。如:int *pa ; pa=1000; 就是错的可以用:int a=1000, b, *pa;pa=a;//将a的地址赋给指针变量pab=*pa //用取值运算符*将指针变量pa所指的变量所在空间里的值(内容)取出来,赋值b,即此时,变量b的值为1000。该名等价于b=a。*pa是代表指针变量pa所指的变量所在空间里的值(内容),这种访问方式叫间访(dereference),间访操作既可以读也可以写。写就是改变指针变量里的实体值,如*pa=12,则cout*pa的结果就是12.给指针变量赋值时,变量名前不能加地址标识符’*’。例如:int *p; *p=a;就是错的。指针变量作为函数参数(体会指针的好处)若函数的形参是指针类型,调用该函数时,对应的实参必须是同类型变量的地址或同类型的指针变量。如下例,采用了传值调用方式,通过自定义函数来交换两个变量的值,结果发现虽然两个形参变量的值进行了交换,但实参变量的值去没有变:里面实参变量(输入的值存储的地方)m,n,和swap函数的形参变量a,b(自定义函数中的未知数变量)的个数、类型都相同一致。当调用swap()函数时,系统会自动给形参变量a,b分配内存单元,此时,形参变量与实参变量各有自己的内存单元。调用swap()时,将实参变量m,n的值对应传递给形参变量a,b即a=
您可能关注的文档
最近下载
- 人教版二年级数学期末试卷.docx VIP
- 地铁疏散平台施工方案.docx VIP
- 2021中国智能家居生态发展白皮书.pptx VIP
- 中职人工智能技术应用专业人才培养模式的探索与实践报告.docx VIP
- 2025广西公需科目考试答案(3套,涵盖95_试题)一区两地一园一通道建设;人工智能时代的机遇与挑战.docx VIP
- 智能家居生态发展白皮书.pptx VIP
- 2018-2024年海峡杯数学竞赛真题及答案(三年级).pdf VIP
- 铁路线路防护栅栏(通线〔2023〕8001)下.docx VIP
- 范德堡法.doc VIP
- 2023-2024学年江苏省高中语文高三期末通关考试题详细答案和解析.docx VIP
文档评论(0)