C语言循环输入问题。

C语言用for语句进行循环输入时,为什么输入一个数据后按空格键就能进行下一个数据的输入?

规则1.如果你不写scanf语句,那么程序就直接运行到底了,不会等待;
规则2.如果你写了scanf语句,但是只输入了一个变量,那么你在控制台里其实也可以输入一长串字符串,scanf并不能限制你如何敲键盘
规则3.当你按下回车,输入的字符串将进入输入缓冲区,也就是说,按下回车之前,所有的输入都不生效,可以随时backspace删除掉,对程序无任何影响
规则4.当输入缓冲区里有数据后,程序将不再阻塞于scanf语句,而是向下运行。如果你写了for循环读取,那么将依次从输入缓冲区中按照既定规则(就是你自己写的格式化字符串)读取数据。
规则5.如果你写了%d,表示读一个整数,那么读到空格、换行符、制表符等符号,就认为一个数据已经完毕,后面的会被当成另外的数据处理

啥意思?是你最后回车键以后才起作用的。光按空格不会马上执行,空格后面的连续输入数据会在输入缓冲区存储着