键盘缓冲区中有5个字符'c''h''i''n''a'和回车符,我在printf()函数中调用五次getchar()函数。为什么屏幕上显示的顺序是:回车符anihc?
调用6次
也就是说只是printf()函数中的getchar()的执行是倒序的,程序中位置第一的getchar()读取的是第一个字符'c',是吗?
追答getchar()本身没有所谓的倒序执行这种说法,而是因为你把多个getchar作为printf函数的参数传递过去,而函数参数是以栈形式存储的,所以才出现最后的getchar被最先执行。而在你的输入缓冲区中,字符的顺序是“china\n”,因为最后的getchar被最先执行,所以是最右边的getchar把c读取了,然后被打印在最后
也就是说不管我用什么函数,都会先读取回车符吗?