标题:为什么最后的结果不是这样呢?? 求大神详解
只看楼主
jg658237
Rank: 7Rank: 7Rank: 7
来 自:青藏高原
等 级:黑侠
帖 子:224
专家分:529
注 册:2013-8-8
结帖率:100%
已结贴  问题点数:20 回复次数:5 
为什么最后的结果不是这样呢?? 求大神详解
#include<stdio.h>
#include<stdlib.h>

 int main (void)
{
      void prn (int n);
prn(1);
getchar();
system("pause");
return 0;
}
void prn (int n)
{
printf("%d:\t %p\n");                                         
if(n<4)
prn(n+1);
printf("%d:\t %p\n",n,&n);      
return 0;                        
}               为什么不是1: 地址   2:地址  3:地址 4:地址  4:地址 3:地址  2:地址  1:地址????
搜索更多相关主题的帖子: include system return 
2013-08-17 14:09
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
得分:0 
这个代码是为了测试递归?

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-08-17 14:47
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
因为 printf("%d:\t %p\n"); 没有给足参数,其行为是未定义的
2013-08-17 15:46
jg658237
Rank: 7Rank: 7Rank: 7
来 自:青藏高原
等 级:黑侠
帖 子:224
专家分:529
注 册:2013-8-8
得分:0 
回复 3楼 rjsp
高手能不能帮我修改一下/

武功再高也怕菜刀.
2013-08-17 15:55
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
以下是引用jg658237在2013-8-17 15:55:26的发言:

高手能不能帮我修改一下/

你自己不是写了嘛
printf("%d:\t %p\n");
if(n<4)
prn(n+1);
printf("%d:\t %p\n",n,&n);

把第一红色行改得和第二个红色行一致。
2013-08-17 15:58
jg658237
Rank: 7Rank: 7Rank: 7
来 自:青藏高原
等 级:黑侠
帖 子:224
专家分:529
注 册:2013-8-8
得分:0 
回复 5楼 rjsp
多谢指点

武功再高也怕菜刀.
2013-08-17 16:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-419261-1-1.html




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

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