| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1091 人关注过本帖
标题:求教关于getchar的问题
取消只看楼主 加入收藏
windofland
Rank: 2
等 级:论坛游民
帖 子:27
专家分:12
注 册:2010-12-1
收藏
 问题点数:0 回复次数:4 
求教关于getchar的问题
程序代码:
#include<stdio.h>

int main()
{
    printf("%c,%c,%c,%c\n",getchar(),getchar(),getchar(),getchar());
}
如果我输入:abcd
为什么输出的是dcba?
2011-11-01 22:50
windofland
Rank: 2
等 级:论坛游民
帖 子:27
专家分:12
注 册:2010-12-1
收藏
得分:0 
原来如此,受教了
2011-11-01 23:38
windofland
Rank: 2
等 级:论坛游民
帖 子:27
专家分:12
注 册:2010-12-1
收藏
得分:0 
我仔细想了下,还是有问题:
如果输出是从右向左的输出,那么
int a=1,b=2;
printf("a=%d,b=%d\n",a,b)
的输出结果不就应该是:
b=2,a=1了么?
但实际结果仍然是:
a=1,b=2啊

[ 本帖最后由 windofland 于 2011-11-1 23:55 编辑 ]
2011-11-01 23:54
windofland
Rank: 2
等 级:论坛游民
帖 子:27
专家分:12
注 册:2010-12-1
收藏
得分:0 
请问是怎么个一一对应呢?
程序代码:
#include<stdio.h>

int main()
{   char a,b,c,d,e;
    printf("a=%c,b=%c,c=%c,d=%c,e=%c\n",a=getchar(),b=getchar(),c=getchar(),d=getchar(),e=getchar());
    printf("a=%c,b=%c,c=c%,d=c%,e=%c\n",a,b,c,d,e);
}
我对代码稍微改了下,只是添加了原样输出的字符,其余的都不变
生成的结果如下:
abcde
a=e,b=d,c=c,d=b,e=a
a=e,b=d,c=c,d=b,e=a
Press any key to continue
printf中""输出列表是从右往左运算后再与""中的格式控制的话,即a=%c对应e=getchar(),b=%c对应d=getchar()……以此类推,是不是这么理解?


[ 本帖最后由 windofland 于 2011-11-2 23:06 编辑 ]
2011-11-02 22:56
windofland
Rank: 2
等 级:论坛游民
帖 子:27
专家分:12
注 册:2010-12-1
收藏
得分:0 
那是不是说这个是由于堆栈的方法引起的,并不是有printf引起的?
2011-11-02 23:55
快速回复:求教关于getchar的问题
数据加载中...
 
   



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

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