从控制台通过键盘输入的,都是字符。区别在于,在scanf中,
1)如果格式控制串是%c,会把所有输入字符都用来匹配后面参数,比如你键入d<SP>e<SP>f
(SP,空格),除了“def”,SP也会被当做一个字符,赋值给后面相应的参数,当然末尾还有换行符<LF>
。所有参数都有值了以后,就会停止匹配字符。
2)如果格式控制串是%d,只会把“-”
(首位负号字符),“0~9”
(数字字符)用来转化成整型匹配后面参数,所有输入都是字符,但对于int数字来说,a~z等字母就是无效字符,非数字的首位“-”也是无效字符。比如你键入-123abc456-def-789
,-123是数字(成功匹配到一个整型数),abc并非数字(终止本次输入整型数的匹配),456是数字(成功匹配到一个整型数),-def并非数字(终止本次输入整型数的匹配),-789是数字(成功匹配到一个整型数).
具体怎么匹配的,取决于你的格式控制串。
区别就是一个是数可以,另一个是字符就不可以。那么字符和数有什么区别,哪样的叫字符,数字是不是字符