3.1.1 常量

常量是指不可改变的量,C语言中的数值都可以用常量来表示。由于常量的字面值就表征了其数值大小,因此也称为文字常量。常量可以表示各种数据类型的值,其数据类型也可以从其字面形式直接获知。比如,'1' 就是一个常量,其值为其字面值1,而数据类型为整型。下面是几种不同数据类型的常量的示例:

        234
        -93LL
        037
        '\037'
        32e3
        73.43
        'e'

以上常量中:

· 234的值为整数234,类型为int型。int型可以存储整数。

· -93LL的值为负整数-93,类型为long long int型。

· 037表示一个八进制整数,类型为int型。

· '\037'表示一个ASCII码字符,其值形式可见范例3-1相应语句的执行结果,该常量的类型为char型。

· 32e3的值为32000(可能存在误差),类型为double型。

· 73.43的值为浮点数73.43,类型为double型。

· 'e'表示一个字符'e',类型为char型。

注意:上面出现的int、long long int、double和char都是数据类型名,在第4章中会详细讨论这几种数据类型的使用。

下面的范例展示了各种不同类型的常量的值。

【范例3-1】显示常量的值和类型,实现方法如示例代码3-1所示。

示例代码3-1

        01  #include <stdio.h>
        02
        03  int main(void) {
        04       /* 使用printf函数输出各种常量的值 */
        05       printf("234 = %d\n", 234);                      /* 输出234的值 */
        06       printf("-93 = %lld\n", -93LL);                  /* 输出-93LL的值 */
        07       printf("037 = %d\n", 037);                      /* 输出037的值 */
        08       printf("\\037 = %c\n", '\037');                 /* 输出'\037'的值 */
        09       printf("32e3 = %lf\n", 32e3);                   /* 输出32e3的值 */
        10       printf("73.43 = %lf\n", 73.43);                 /* 输出73.43的值 */
        11       printf("'e' = %c\n", 'e');                      /* 输出'e'的值 */
        12
        13       return 0;
        14  }

【运行结果】运行程序后,输出结果如图3-1所示。

【代码解析】本程序的功能为使用printf函数打印各个常量的值,以验证之前对这些数值的讨论。可以看到每个不同类型的常量在printf函数中要替换的内容也是不一样的,比如,int型常量要替换的是%d,long long int型常量要替换的是%lld,double型常量要替换的是%lf,char型常量要替换的是%c。需要注意的是:在图3-1第3行中,31是037由八进制转换为十进制的结果。

图3-1 常量的值和类型

提示:printf函数实现了C语言中的格式化输出功能,可以向屏幕输出格式化的字符串,在本章第3.3.1节将讨论该函数的使用。