| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 655 人关注过本帖
标题:指针传递参数,有点不理解了
只看楼主 加入收藏
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
回复 9楼 TonyDeng
未知行为???哦  ,那不想了,想了也没用

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-12-13 14:22
crystall
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:184
专家分:809
注 册:2012-12-1
收藏
得分:0 
回复 7楼 azzbcc
1. char *s1;
s1是一个未被初始化的指针变量, VC6 调试版本下未被初始化的标志 0xCC

图片附件: 游客没有浏览图片的权限,请 登录注册


图片附件: 游客没有浏览图片的权限,请 登录注册


s1 = Get1();

2.Get1()
进入到函数内部


我输入的数据为 123




3.当出了Get1()这个函数


s1 = Get1()的返回值.

s1内容的改变过程



执行下一句:
printf("Main:%s\n", s1);
此时0x0012ff18中的数据还没有被改变,因此输出的数据还是之前的123.
走完这步之后, 0x0012ff18中的内容被改变了.(因为调用printf(),函数内部进行了一些操作)

4. Out(s1);
当你再次把s1传入到Out()
void Out(char *a)
char* a //新的一个临时变量(前面说过了未被初始化的变量,标志 0xCC)




因此输出的结果为:未被初始化变量的标志,一直延续到'\0'结束.
2012-12-13 14:45
crystall
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:184
专家分:809
注 册:2012-12-1
收藏
得分:0 
回复 12楼 crystall
郁闷哦,我贴了5张图,只显示2张图出来
2012-12-13 14:46
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
论坛带图片的帖子编辑很烂,图片只能一次贴成功,再修改就无法显示了。图片排好了,就不要再编辑帖子,不然能要你的命。

授人以渔,不授人以鱼。
2012-12-13 14:49
crystall
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:184
专家分:809
注 册:2012-12-1
收藏
得分:0 
回复 14楼 TonyDeng
哦, 原来是这样啊! 3Q
2012-12-13 14:53
快速回复:指针传递参数,有点不理解了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017892 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved