关于C语言里getchar函数的问题?逻辑想不通啊、. 既然是顺序计算,等于号具有右极限
既然是顺序计算,等于号具有右极限
那么输出的应该是前2个字符
为什么我输入123456789时
输出的是56呢
关于C语言里getchar函数的问题?逻辑想不通啊、. 既然是顺序计算,等于号具有右极限
答案:1 悬赏:40 手机版
解决时间 2021-08-13 11:21
- 提问者网友:呐年旧曙光
- 2021-08-12 20:14
最佳答案
- 五星知识达人网友:荒野風
- 2021-08-12 21:18
scanf(%c%c%c%c,&c1,&c2,&c3,&c4);
这个会输入4个字符
c5=getchar(); c6=getchar();
这个会输入2个字符
所以你的c1-c6依次是123456
然后你输入出的是c5和c6
所以输出的是56
这个很正常啊······,我不晓得你描述的等于号具有右极限是啥意思,我只晓得按照你的程序流程是这么运行的···,写在前面的语句段先运行··········依次往下执行,这个已经和你的等于号神马的没有关系了·······
再问: c5=getchar(); c6=getchar(); 这两个已经定义了c5和c6了呀,按逻辑来说应该是第一个字符和第二个字符,我也知道,定义上说:把输入的字符赋予一个字符变量,构成赋值语句,可是你得有个先后顺序吧,语句,应该先执行getchar(),然后把getchar()的值给了c5,现在怎么是c5的值给了getchar()了呢,这不是和等于号的右极限(比如6=m)矛盾了吗?
再答: 好吧,所谓的先后顺序···也必须得遵循程序的运行, scanf(%c%c%c%c,&c1,&c2,&c3,&c4); c5=getchar(); c6=getchar(); 你是这么写的,所以程序会先运行scanf这段····,c1-c4赋值完以后才会运行下一段 你说的:把输入的字符赋予一个字符变量,构成赋值语句 c5=getchar();中getchar()确实是先执行的,先获取了一个值,在这里是5,然后吧这个值给了c5 但是我不懂你说的c5的值给了getchar()是什么意思? c5之前你只定义了,并没有赋值,c5=getchar();是这句给c5赋值的········按照你说的等于号的右极限,这里简化下来还是c5=5;······· 你是不是少写了一段或者是理解出差错了??
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯