- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
对指针的分析
一直以来对指针的使用比较多,但都是基本使用,有时候也没从原理上去深究。某日,突来兴趣,分析了一下总结了以下几点。(本文中给出的地址示例没有考虑指针变量或普通变量的实际长度,只是给出了示意地址图,望不要在此问题上纠结)1. 关于普通变量,指针变量,指针的指针变量。inta;a=5;系统会自动为a分配一个空间。对变量a的赋值,即改变x+0地址中的内容。int*b;b=a;系统会自动为b分配一个空间。存放的是变量a的地址。对变量b赋值,即改变变量b单元中存放的内容。int**c;c+b;系统会自动为c分配一个空间。存放的是变量b的地址。系统内存地址(基地址设为x)变量名值备注x+2cx+1c=2;即c中存放的内容改为2.*c=2;即c中存放的地址中的地址的内容改变为2.**c=2;即c中存放的地址中的地址的内容改变为2.x+1bx+0b=2;即b中存放的地址该为2.*b=2;即b中存放的地址的内容改变为2.x+0a5a=2;即改变的是a的值,也就是内存空间x+0单元中的值。2. 关于函数的参数intfun(inta){a=0};intfun(int*a){a=2;*a=0};intfun(int**a){a=2;*a=0,**a=0};我们知道,函数都是按值传递的。即形参和实参是不同的变量。intfun(inta){a=0};中,传递了一个变量的值,在函数中改变了形参变量的值。这其实对实参没有做任何改变。理解示意图如下:普通变量参数 指针变量参数 指针的指针变量做参数3. 对函数free的理解。free只是告诉系统传入的指针指向的区域可以回收。并不改变传入指针变量的值。4. 对指针下标的理解。int*p;p=malloc(10);p[0]=0;p[1]=1;如上所示,其实对p[0]的引用,是对p所指向地址空间的内容的引用。等有时间的话,再从汇编代码来好好分析一下指针的奥秘。其实,对地址搞清楚了,指针就是一个纸老虎。
您可能关注的文档
- 如何优化你的PowerBuilder程序.doc
- 好啊网常用人工成本分析指标.doc
- 好丽家母婴之家与丁丁网合作方案(英文版).ppt
- 如何利用C++转换字母大小写.doc
- 大学文科数学2第二章一个关于极限的故事奇怪的旅店.ppt
- 如何做好工厂副总的方法及建议.doc
- 检修分公司二郎辅助用房综合整治技术条件书.doc
- 如何取消订单不扣钱优步申请取消订单被扣款解决方法教程.doc
- 大学数学线性代数经典课件53.ppt
- 如何在初中开展数学建模.doc
- 甘肃省白银市会宁县第一中学2025届高三3月份第一次模拟考试化学试卷含解析.doc
- 2025届吉林市第一中学高考考前模拟生物试题含解析.doc
- 四川省三台县芦溪中学2025届高三下第一次测试生物试题含解析.doc
- 2025届江苏省启东市吕四中学高三适应性调研考试历史试题含解析.doc
- 浙江省宁波市十校2025届高三二诊模拟考试历史试卷含解析.doc
- 甘肃省甘南2025届高考生物必刷试卷含解析.doc
- 河北省石家庄市一中、唐山一中等“五个一”名校2025届高考历史四模试卷含解析.doc
- 江西省南昌市进贤一中2025届高考生物考前最后一卷预测卷含解析.doc
- 甘肃省白银市会宁县第四中学2025届高三第二次模拟考试历史试卷含解析.doc
- 宁夏银川市宁夏大学附属中学2025届高考化学押题试卷含解析.doc
文档评论(0)