| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2876 人关注过本帖
标题:[求助]小程序运行结果分析
只看楼主 加入收藏
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
哈,又进帐100,神啊,谢谢了!

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-08-10 22:08
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

TMD,为了我的理论,买了!

int g(int b) { b++; return(b); }

int f(int a) { a++; g(a); printf("knocker=%d\n",a);/*注意这里,Knoker更换成不同的试试,比如:OK,NO,神.......*/ }

main() { int a=1; printf("%d\n",f(a));

getch(); }

在反驳你之前,我们先做个小实验: main() { int a=1; printf("%d",(printf("GOD\n"))); getch(); }

你能猜出计算机会输出多少吗? GOD 4

为什么,原因就是printf是个有返回值的函数,返回值是多少? printf的返回值其实就是""里面的长度,比如我这个程序的"GOD\n" 他就有4个字符,所以返回值是4

结论: printf()有返回值,返回值是其 "" 里面字符串的长度

用这个结论套到我对这个帖子的回答后.很快我们就可以推出你举的例子了,所以,你的例子不是推翻,而是更加进一步的证明了神的伟大性~~~~~[em36]


淘宝杜琨
2004-08-10 22:12
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

经我再次验证神的理论好象是正确的!

不过,付出去的钱如泼出去的水,收是收不回去的


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-08-10 22:46
chengstone
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
帖 子:562
专家分:226
注 册:2004-4-3
收藏
得分:0 

knocker 真是生意人~~ 我晕死


qq:69558139
2004-08-10 23:04
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
嘿嘿,多谢楼上的吉言,下次多多照顾本人生意。

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-08-10 23:10
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

无语

下次我要求 "精液司" 把我的帖子该为只有kncoker看不见


淘宝杜琨
2004-08-10 23:16
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 

神啊!!

给个理由先???

你就是一排胡言,我上面是白说了,举个例子给你,你在函数int f(int a);中的

b=a+g(a);后在家一个空函数看看是什么结果!!!!

还有你的那个b+=2;和b=b+2;的理论,我没有看到过可不可以说的详细一点,我不太信!!!


差点把你忘了...
2004-08-11 09:07
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

等等天使,我没看明白你的帖子,我所举的例子中并没有 b=a+g(a); 这个东西出现啊?! 还有,你说要在后面加一个空函数,不理解~~~

请写一个程序出来我好反驳呀!就像knocker那样,不过不要收费啊!!!

我就喜欢论坛这点,有什么大家都可以来一起讨论~~~嘻嘻


淘宝杜琨
2004-08-11 09:22
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 

来了:

#include<stdio.h> int a=12; int g(int n) { a/=2; return(a+n); } int k(int i) { } int f(int a) { static int b=0; a/=(b+2); b+=g(a); k(1); } void main() { while(a>0) printf("%d\n",f(a)); }


差点把你忘了...
2004-08-11 09:35
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

恩~着实给了我一棒!

我认为,系统在对待 int k(1) 和 int k(a) 无返回值的时候,态度是不同的,这点可以举例子:

int k(int i) { }

main() { int a=99;

printf("%d",k(99)); getch(); }

这样,输出的是99

int k(int i) { }

main() { int a=99;

printf("%d",k(a)); getch(); }

而这样,输出的是k()函数的地址。

所以我认为,当int k(99) 的时候,如果k函数中没有return 那么,系统就会把99当成是k的返回值,同时认为他有return。

int k(99) {}

等价于

int k(99) {return 99;}

当int k(a) 的时候,如果k函数中没有return 那么,系统就会返回个地址。

[此贴子已经被作者于2004-08-11 10:04:55编辑过]


淘宝杜琨
2004-08-11 09:53
快速回复:[求助]小程序运行结果分析
数据加载中...
 
   



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

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