scanf()函数定义:
if (缓冲区为空)
调阻塞函数;
调赋值函数;
执行下面的代码:
for (i = 0;i < 10;i++)
{
scanf("%c",&ch);
printf("%c",ch);
}
代码执行过程:
1、调用第一个scanf()后,缓冲区为空,调用阻塞;
2、例如输入abcd(回车符)到缓冲区(回车符表示结束阻塞);
3、调赋值,将ch = a;并清除缓冲区的a值,将b作为缓冲区第一个值。然后结束第一个scanf();
4、调第一个printf();打印出a
5、调第二个scanf()后,检查到缓冲区不为空,调赋值。将ch = b;结束第二个scanf()
6、调第二个printf();打印出b
......