关于c语言地址问题的在讨论

上传人:第*** 文档编号:38954931 上传时间:2018-05-09 格式:DOC 页数:3 大小:58.50KB
返回 下载 相关 举报
关于c语言地址问题的在讨论_第1页
第1页 / 共3页
关于c语言地址问题的在讨论_第2页
第2页 / 共3页
关于c语言地址问题的在讨论_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《关于c语言地址问题的在讨论》由会员分享,可在线阅读,更多相关《关于c语言地址问题的在讨论(3页珍藏版)》请在金锄头文库上搜索。

1、先看一个例子: #include void point(char *p) p+=3; void point2(char *p) *p+=3; void main() char s=a,b,c,d,e; point (s); printf(“调用 pont()结果为:%cn“,*s); point2(s); printf(“调用 pont2()结果为:%cn“,*s); 运行结果如下:首先是 ponit()函数,该函数的确是传址调用,但我们看执行的结果却令人大失所望,因为我们所期望的结果与我们的实际操作大相径庭,究其原因,就在于 point()函数的执行即 p+=3; 我们知道 p 是一个指针变

2、量其存放的值肯定为某个变量的地址即从主函数中传递过去的地址值 s,于是我们可以用图以来说明这个过程。但是 point()函数明显挂羊头卖狗肉,它执行了P+=3;一个存放地址值的变量加三?是何道理?最致命的一是 p 与*p 肯定不在同一个内存单元中。图一;Voind point(char *p) P+=3;主函数 void main() Pontt(s) ;Point2(*s )Void point2(ch ar *p) *p+=3;)而在 void point2()中的操作是*p+=3;是将 p 所指的内存单元的值加三,即 s 加三;由此得出结论,要想使传址改变主函数中的值,必须使得被调用的函数与主函数中的参数共享一段内存单元。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号