| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1121 人关注过本帖
标题:怪异的运行结果
只看楼主 加入收藏
han2y
Rank: 1
来 自:山东德州
等 级:新手上路
帖 子:175
专家分:0
注 册:2006-5-4
收藏
得分:0 
不会英语不要用拼音,费劲……也许你的系统是linux,不能输入中文,我的linux就是不能输入汉字

2006-07-30 23:24
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
shi bu hui ying wen

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-07-30 23:28
han2y
Rank: 1
来 自:山东德州
等 级:新手上路
帖 子:175
专家分:0
注 册:2006-5-4
收藏
得分:0 
以下是引用ecbtnrt在2006-7-30 23:22:08的发言:
return 0;到此句时函数执行完毕。系统给一个warning,后面的一句getch()不再起作用,但是仍会运行输出hskd。如果你说不能输出那是你的编译器的问题。
我不知道你为什么把一个输入字符的getch()放在最后面呢?用法也不对啊,你也不想把字符输出,输入也不知道存哪,你应该定义一变量来储存啊!

获取显示信息时用getch(),这是一个实用大全的例子,我也运行过了,的确是没有任何显示,可是下面的程序有显示:
#include <stdio.h>
main()
{
printf("hskd");
getch();
}
也就是删掉了:return 0; 这一语句


2006-07-30 23:32
han2y
Rank: 1
来 自:山东德州
等 级:新手上路
帖 子:175
专家分:0
注 册:2006-5-4
收藏
得分:0 
以下是引用论坛在2006-7-30 23:28:23的发言:
shi bu hui ying wen

不会英语用中文,不用我教吧


2006-07-30 23:33
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
he he....

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-07-30 23:35
ecbtnrt
Rank: 1
等 级:新手上路
威 望:1
帖 子:189
专家分:0
注 册:2006-4-16
收藏
得分:0 
当然有显示了啊,显示hskd,getch()在这不起作用,你没有开辟内存给它.举个例子应用getch():
char c;
while((c=getch()!="\n");
如果是在去掉return0;有才有显示我也没有办法,很简单的一个c知识不成立了,我还能说什么呢?

我为你痴,为你狂!
2006-07-30 23:39
yeshirow
Rank: 4
等 级:贵宾
威 望:10
帖 子:854
专家分:0
注 册:2006-6-8
收藏
得分:0 
怪異的不是運行結果, 而是這個 main 函數, 已經嚴重脫離的編程思想

一個函數返回之後再做一些其他事情. 我相信沒有人會這麽做.

沒有必要去考究這個主題.

原來朋友仔感情再天真, 亦是我永遠也會愛惜的人, 明日愛他人, 也記住學會不要緊; 原來朋友比戀人更高分, 亦讓我開始懂得不記恨, 若大家都敏感, 我更要永遠記得拒絕再因小事怪人, 爲何沒有這條校訓...Twins-朋友仔 MCSD Training
2006-07-30 23:59
ccjamting
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-7-10
收藏
得分:0 
#include <stdio.h>
main()
{
printf("hskd");
return 0;
getch();
}
////////////////////////////////////////
#include <stdio.h>
main()
{
printf("hskd");
getch();
}
也就是删掉了:return 0; 这一语句
/////////////////////////////////////////
这涉及到缓存的问题,当系统有事件触发时,printf进行显示,也就是getch()触发。
而你第一次还没有进行getch()触发就return 0所以printf没有被触发执行。
这就是没有显示的原因。

即非出自名门,又系旁门左道,我,就这样笑着。
2006-07-31 10:15
wuyufenjr
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2006-7-20
收藏
得分:0 
那要看你是用什么编译器,如果是编译C和C++,那就有return 0;,如果使用win-tc就是一定要有getch();
2006-07-31 13:02
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用han2y在2006-7-30 23:32:37的发言:

获取显示信息时用getch(),这是一个实用大全的例子,我也运行过了,的确是没有任何显示,可是下面的程序有显示:
#include <stdio.h>
main()
{
printf("hskd");
getch();
}
也就是删掉了:return 0; 这一语句

这个在win-tc是这样用。在大多数编译器是除getch(),保留return(0);结果一样。


倚天照海花无数,流水高山心自知。
2006-07-31 13:05
快速回复:怪异的运行结果
数据加载中...
 
   



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

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