| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2351 人关注过本帖
标题:[讨论]取地址和取内容时遇到的问题
取消只看楼主 加入收藏
lg_mic
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2007-9-18
收藏
 问题点数:0 回复次数:3 
[讨论]取地址和取内容时遇到的问题
初学C语言,主要是看书然后将例子试一遍。在“运算符—一元变换”那里遇到了问题
原例子是这样:

main()
{
int m,count=100;
m=&count;
printf("%d\n",m);
}

调试时显示 错误 temp.c 5: 非可移动指针转换 在函数 (这里的错误是什么原因造成的?)

于是我改了一下
main()
{
int *m,count=100;
m=&count;
printf("%d,%d\n",*m,m);
printf("%d,%d\n",m,*m);
printf("%d,%d\n",*m,m);
}

调试正常,不过运行时的结果很奇怪
第一行输出 100,4060。这一行应该没问题,前面是count的内容,后面是count的地址
第二行输出 4060,5023。 这就让我搞不懂了?为什么会出现这种结果?
第三行还是 100,4060。也就是说只有 m在*m之前输出时会产生问题。怪哉。

调试环境是mytc5.4.1
搜索更多相关主题的帖子: count printf 地址 main 
2007-09-18 12:01
lg_mic
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2007-9-18
收藏
得分:0 
又改了一下
main()
{
int *m,count=100; /*定义m为指针*/
m=&count;
printf("%d,%d,%d,%d\n",*m,m,&count,count);/*输出m的内容,m的地址,count的地址,count的内容*/
printf("%d,%d,%d,%d\n",*m,m,count,&count);/*输出m的内容,m的地址,count的内容,count的地址*/
printf("%d,%d,%d,%d\n",m,*m,&count,count);/*输出m的地址,m的内容,count的地址,count的内容*/
printf("%d,%d,%d,%d\n",m,*m,count,&count);/*输出m的地址,m的内容,count的内容,count的地址*/
printf("%d,%d,%d,%d\n",&count,count,*m,m);/*输出count的地址,count的内容,m的内容,m的地址*/
printf("%d,%d,%d,%d\n",&count,count,m,*m);/*输出count的地址,count的内容,m的地址,m的内容*/
printf("%d,%d,%d,%d\n",count,&count,*m,m);/*输出count的内容,count的地址,m的内容,m的地址*/
printf("%d,%d,%d,%d\n",count,&count,m,*m);/*输出count的内容,count的地址,m的地址,m的内容*/
}

输出结果是:
100,4060,5036,4060
100,4060,5036,100
4060,5036,100,4060
4060,5036,100,100
4060,5036,100,100
4060,5036,100,4060
100,4060,5036,100
100,4060,5036,4060

那个5036到底是从那里冒出来的?最开始是5023,后来变成了5028,现在又变成5036了。

2007-09-18 12:21
lg_mic
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2007-9-18
收藏
得分:0 
那就是说是tc的问题了?另外问一下,你说没问题,是指原例子说的,还是我改过后的部分说的?

2007-09-18 12:29
lg_mic
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2007-9-18
收藏
得分:0 
按5楼说的方法改了一下,这次没问题了。看样子是数据类型定义的错误。看来我要换个c程序了。有没有什么推荐的?

另:谢谢無邪的睡脸和chllin的帮助。

2007-09-18 13:02
快速回复:[讨论]取地址和取内容时遇到的问题
数据加载中...
 
   



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

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