预计阅读本页时间:-
C的char类型表示一个字符。要表示一个字符序列,C使用字符串。字符串的一种形式是字符常量,其中字符用双引号括起来,例如“Good luck,my friend”。也可以在字符数组中存储一个字符串,字符数组由内存中相邻的字节组成。字符串,无论是表达成一个字符常量还是存储在一个字符数组中,都要以一个被称为空字符的隐藏字符来结束。
在程序中最好使用#define或是关键字const以符号代表数字常量。符号常量使程序可读取性更强、更易于维护和修改。
广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元
标准C输入和输出函数scanf( )和printf( )都使用一个系统,在这个系统中必须使第一个参数中的类型说明符与后续参数中的值相匹配。比如说,把诸如%d这样的int说明符与一个浮点值相匹配会产生奇怪的结果。必须小心谨慎,以确保说明符的数目和类型与函数的其余参数相匹配。如果是scanf( ),一定要记得给变量名加上地址运算符前缀(&)。
空白字符(制表符、空格和换行符)对于scanf( )如何处理输入起着至关重要的作用。除了在%c模式(它读取下一个字符)下外,在读取输入时,scanf( )会跳过空白字符直到第一个非空白字符处。然后它会一直读取字符,直到遇到空白字符,或遇到一个不符合正在读取的类型的字符。我们考虑如果让几个不同的scanf( )输入模式读取相同的输入行,将会产生什么情况。假设有如下输入行:
首先,假定我们使用%d模式,scanf( )会读取三个字符(-13)并在小数点处停止,将小数点作为下一个输入字符。然后,scanf( )将会把字符序列-13转换成相应的整数值,并将该值存储在目标整型变量中。接着,假定scanf( )以%f模式读取相同的行,它将会读取字符-13.45E12,并在#符号处停止,将它作为下一个输入字符。然后它把字符序列-13.45E12转换成相应的浮点数值,并将该值存储在目标浮点型变量中。假定scanf( )以%s模式读取相同的行,它将会读取-13.45E12#,并在空格处停止,将这个空格作为下一个输入字符。然后它将把这10个字符的字符代码存储到目标字符数组中,并在结尾附加一个空字符。最后,假定scanf( )使用%c说明符读取相同的行,它将会读取并存储第一个字符,在这里是一个空格。