2.2. 常量

时间 : 16-04-13 栏目 : linux编程 作者 : 老薛 评论 : 0 点击 : 640 次

      常量(Constant)是程序中最基本的元素,有字符常量(Character Constant)、数字常量和枚举常量。枚举常量以后再介绍,现在我们看看如何
使用字符常量和数字常量: printf("character: %c\ninteger: %d\nfloating point: %f\n", '}', 34, 3.14); 字符常量要用单引号括起来,例如上面的'}',注意单引号只能括一个字符而不能像双引号那样括一串字符,字符常量也可以是一个转义序列,例如'\n',这时虽然单引号括了两个字符,但实际上只表示一个字符。和字符串字面值中使用转义序列有一点区别,如果在字符常量中要表示双引号"和问号?,既可以使用转义序列\"和\?,也可以直接用字符"和?,而要表示'和\则必须使用转义序列。
     计算机中整数和小数的内部表示方式不同,因而在 C 语言中是两种不同的类型,例如上例的34和3.14,小数在计算机术语中称为浮点数(Floating
Point)。这个语句的输出结果和 Hello world 不太一样,字符串"character: %c\ninteger: %d\nfloating point: %f\n"并不是按原样打印输出

的,而是输出成这样:

character: }

integer: 34

floating point: 3.14
printf 中的这个字符串称为格式化字符串(Format String),它规定了后面几个数据以何种格式插入到这个字符串中,%号(Percent Sign)后面加个字母
c、d、f 在printf中分别解释成字符型、整型和浮点型的转换说明(Conversion Specification),分别用后面的三个常量来替换它们,也就是说它们只是在格式化字符串中占个位置,并不出现在最终的打印结果中,这种用法通常叫做占位符(Placeholder)。这也是一种字面意思与真实意思不同的情况,但是和转义序列又有区别:转义序列是编译器在处理字符串字面值时转义的,而占位符是由printf解释的,格式化字符串实际包含的字符是character:%c换行integer: %d换行floating point: %f换行,其中的%c仍然是字符串中的两个普通字符,而当字符串传给 printf 处理时,printf 却不把它当成是普通字符,而是解释成占位符。事实上前面例子中的"Hello, world.\n"也是格式化字符串,只不过其中不包含占位符。 有时候不同类型的数据很容易弄混,例如"5"、'5'、5,如果你注意了Delimiter 就会很清楚,第一个是字符串,第二个是字符,第三个是整数,看了下文你很快就会知道为什么一定要严格区分它们之间的差别了。

本文标签

除非注明,文章均为( 老薛 )原创,转载请保留链接: http://www.bdkyr.com/xtyw003/1653.html

2.2. 常量:等您坐沙发呢!

发表评论

1 + 7 = ?


博主微信号,很高兴为您提供帮助

随便看看

0