首页 > 编程笔记 > C语言笔记 阅读:33

C语言中的常量(非常详细,附带实例)

常量就是其值在程序运行过程中不可以改变的量,包括 3 类,分别是数值型常量(包括整型常量和实型常量)、字符型常量和符号常量。

C语言整型常量

整型常量就是整型常数(没有小数部分),如 123、−456 等。

整型常量有十进制、八进制和十六进制 3 种表示形式:
整型常量可以是基本整型(int)、长整型(long int)或短整型(short int),还可以是无符号整型(unsigned)或有符号(signed)整型。在常量后加上 L(或 l),表示该常量是长整型,如 1314L;加上 U(或 u),表示该常量为无符号整型,如 520U。

注意,整型常量所占的内存大小和数值范围取决于编译器。字长为 16 位的计算机中,基本整型为 16 位;字长为 32 位的计算机中,基本整型为 32 位。这里,8 位等于 1 字节。


无符号整型可以存放的正数范围比有符号整型大一倍,因为有符号整型的最高位用于储存符号,而无符号整型所有位全部同来存储数字:

C语言实型常量

实型也称为浮点型,由整数和小数两部分组成,并用十进制的小数点进行分隔。表示实数的方式有小数和指数两种。

1) 小数形式

小数表示方法就是使用十进制的小数方法描述实型。例如:
123.45;
0.5458;

2) 指数形式(科学计数形式)

当实型数非常大或非常小时,可使用指数形式来表示。使用字母 e 或者 E 表示指数形式,如 45e2 表示的是 45×10^2,即 4500,45e-2 表示的是 45×10^−2,即 0.45。

上面示例的两个小数用指数形式表示如下:
1.2345e2;
5.458e-1;

书写实型常量时,可以在常量后加上 F 或 L 后缀(大小写通用)。F 表示该常量是 float 单精度类型,L 表示该常量为 long double 长双精度类型。例如:
1.2345e2F; // 单精度类型
5.458e-1L; // 长双精度类型

如果不加后缀,则默认实型常量为 double 双精度类型。例如:
1.2345e2; // 默认为双精度类型

C语言字符型常量

字符型常量与整型、实型有所不同,需要使用定界符进行限制。

字符型常量包括两种:字符常量和字符串常量。

1) 字符常量

使用一对单直撇引号(' ')括起来的字符就是字符常量,如 'A'、'#'、'b' 等:
【实例】使用 putchar() 函数将多个字符常量依次输出,在控制台中显示“Find Day!”。
#include <stdio.h>
int main()
{
    putchar('F');   /*输出字符常量 F*/
    putchar('i');   /*输出字符常量 i*/
    putchar('n');   /*输出字符常量 n*/
    putchar('d');   /*输出字符常量 d*/
    putchar('\0');  /*字符结束标志*/
    putchar('D');   /*输出字符常量 D*/
    putchar('a');   /*输出字符常量 a*/
    putchar('y');   /*输出字符常量 y*/
    putchar('!');   /*输出字符常量!*/
    putchar('\n');  /*进行换行*/
    return 0;
}
运行程序,显示效果为:

Find Day!

2) 字符串常量

字符串常量是用一对双直撇引号(" ")括起来的若干字符序列。例如,"Have a good day! " 和 "beautiful day" 即为字符串常量。

如果字符串中一个字符都没有,将其称作空串,此时字符串的长度为 0。

在 C语言中存储字符串常量时,系统会在字符串的末尾自动添加一个“\0”,作为字符串的结束标志。例如,字符串 "welcome" 在内存中的存储形式如下图所示。


图 1 “\0”为系统所加

【实例】使用 printf() 函数将字符串常量《静夜思》诗句在控制台输出显示。
#include <stdio.h>    /*包含头文件*/
int main()
{
    printf("窗前明月光\n");    /*输出字符串*/
    printf("疑是地上霜\n");
    printf("举头望明月\n");
    printf("低头思故乡\n");
    return 0;                /*程序结束*/
}
运行程序,显示效果为:

窗前明月光
疑是地上霜
举头望明月
低头思故乡


字符常量和字符串常量的差别主要体现在以下几个方面。

图 2 字符串“F”

C语言转义字符

前面实例中能看到 “\n” 符号,但输出结果中却不显示该符号,只是进行了换行操作,这种符号称为转义符号。

转义符号在字符常量中是一种特殊的字符,通常以反斜杠 “\” 开头,后面跟一个或几个字符。常用的转义字符及其含义如下表所示。

表:常用的转义字符表
转义字符 意义 转义字符 意义
\n 回车换行 \ 反斜杠 “\”
\t 横向跳到下一制表位置 \' 单引号符
\v 竖向跳格 \a 鸣铃
\b 退格 \ddd 1~3 位八进制数所代表的字符
\r 回车 \xhh 1~2 位十六进制数所代表的字符
\f 走纸换页    

C语言符号常量

C语言程序中,可以使用符号名来代替固定的常量值。例如使用符号常量来表示一年有多少个小时(一年按 365 天计算):
#include <stdio.h>
#define HOUR 365*24    /*定义符号常量 HOUR*/
int main()
{
    int h,result;      /*定义变量*/
    printf("请输入小时:");    /*提示输入信息*/
    scanf("%d",&h);    /*输入数据*/
    result=h/(HOUR);  /*进行计算*/
    printf("一共有%d年\n",result);    /*显示结果*/
    return 0;         /*程序结束*/
}
运行程序,显示效果为:

请输入小时:356265
一共有40年

相关文章