字符常量要用单引号括起来,例如上面的,注意单引号只能括一个字符而不能像双引号那样括一串字符,字符常量也可以是一个转义序列,例如'\n'
,这时虽然单引号括了两个字符,但实际上只表示一个字符。和字符串字面值中使用转义序列有一点区别,如果在字符常量中要表示双引号”和问号?,既可以使用转义序列\"
和\?
,也可以直接用字符”和?,而要表示’和\则必须使用转义序列。[]
printf
中的第一个字符串称为格式化字符串(Format String),它规定了后面几个常量以何种格式插入到这个字符串中,在格式化字符串中%号(Percent Sign)后面加上字母c、d、f分别表示字符型、整型和浮点型的转换说明(Conversion Specification),转换说明只在格式化字符串中占个位置,并不出现在最终的打印结果中,这种用法通常叫做占位符(Placeholder)。这也是一种字面意思与真实意思不同的情况,但是转换说明和转义序列又有区别:转义序列是编译时处理的,而转换说明是在运行时调用函数处理的。源文件中的字符串字面值是"character: %c\ninteger: %d\nfloating point: %f\n"
,\n
占两个字符,而编译之后保存在可执行文件中的字符串是character: %c换行integer: %d换行floating point: %f换行
,\n
已经被替换成一个换行符,而%c
不变,然后在运行时这个字符串被传给printf
,printf
再把其中的、%d
、%f
解释成转换说明。
1、总结前面介绍的转义序列的规律,想想在printf
的格式化字符串中怎么表示一个%字符?写个小程序试验一下。