假如输入类型符“%5c”所对应的参数ch是一个字符变量而非字符数组时,会有问题吗?按照C标准要求,读取的字符会依次存储到参数ch所在的位置,而ch仅占一个字节,现在要接收5个字符,显然内存数据会遭到破坏,导致程序运行结果出错。同样,在输入字符串时,也会引起错误,例如下面的程序段是输入字符串,如果输入的字符个数超过9个(注,对于字符串来说,在输入结束时,会在输入的字符串尾部增加结束字符'\0'),就会发生错误。所以,scanf()函数在输入多个字符或输入字符串时存在安全隐患。 int str[10]; scanf("%s",str);