实型常量只有十进制形式。如果不加说明,实型常量为正值,否则常量前面使用负号。
日常生活中所使用的带小数的常数,又称为实数、浮点数。C语言中的实数有小数形式和指数形式:
浮点常量由整数部分、小数点、小数部分和指数部分组成。您可以使用小数形式或者指数形式来表示浮点常量。
当使用小数形式表示时,必须包含整数部分、小数部分,或同时包含两者。当使用指数形式表示时,
必须包含小数点、指数,或同时包含两者。带符号的指数是用 e 或 E 引入的。
小数形式:由数字0~9和小数点组成。分为整数和小数两部分,可以是纯小数,小数点不能省略。
例如:100.5,-1.0,.123,5.,0.0、3.14159等。
指数形式:由尾数(十进制小数)、符号E或e及指数(十进制整数)三部分组成。
例如:123.0E-1,1.23E3,4.89e-4 314159E-5L 510E 210f .e55。
字符常量
C语言允许在定义变量的同时使变量初始化。
如: int a=3; // 指定a为整型变量,初值为3
float
f=3.56; // 指定f为浮点型变量,初值为3.56
char c=
‘a’; // 指定c为字符变量,初值为‘a’
计算机上可显示的全部符号,即ASCII码表上的全部字符。每个字符对应唯一的码值(次序值),例如:
‘0’表示数字字符0,其码值为48;
‘A’表示英文字符A,其码值为65等。
字符常量只能是单个字符。
字符常量可以是一个普通的字符(例如 'x')、一个转义序列(例如 '\t'),或一个通用的字符(例如
'\u02C0')。
字符常量有三种表示方法:
1、用一对单引号括起来的一个字符:
例如:‘A’、‘1’、‘b’、‘&’等。其中的单引号‘’是字符常量的边界,不表示字符本身。
2、用该字符的ASCII码值:
例如:用十进制数65(或八进制数0101或十六进制数0x41)表示大写字母'A'。
3、用转义字符:
C语言中采用转移字符表示ASCII码字符集中不可打印的控制字符和其它特定功能的字符。
如用于表示字符常量的单引号(')、用于表示字符串常量的双引号(")以及反斜杠(\)等都必须用转义字符表示。转义字符是一种以反斜线“\”开头,后跟一个或几个字符的字符。
在 C
中,有一些特定的字符,当它们前面有反斜杠时,它们就具有特殊的含义,被用来表示如换行符(\n)或制表符(\t)等。下表列出了一些这样的转义序列码:
转义序列
含义
\\
\ 字符
\'
' 字符
\"
" 字符
\?
? 字符
\a
警报铃声
\b
退格键
\f
换页符
\n
换行符
\r
回车
\t
水平制表符
\v
垂直制表符
\ooo
一到三位的八进制数
\xhh . . .
一个或多个数字的十六进制数
下面的实例显示了一些转义序列字符:
实例
#include
<stdio.h>
int main()
{
printf("Hello\tWorld\n\n");
return 0;
}
当上面的代码被编译和执行时,它会产生下列结果:
HelloWorld
字符串常量
由一对双引号(“”)括起来的由0个或多个字符组成的字符序列,任何字母、数字、符号和转义字符都可以组成字符串。一个字符串包含类似于字符常量的字符:普通的字符、转义序列和通用的字符。
您可以使用空格做分隔符,把一个很长的字符串常量进行分行。
下面的实例显示了一些字符串常量。下面这三种形式所显示的字符串是相同的。
"hello, dear" "hello, \ dear" "hello, " "d" "ear"
例如:
“a”是由一个字符a构成的字符串;
“Happynew Year”是由多个字符序列构成的字符串等,
双引号“”是字符串的边界,不是字符串的一部分。
注意字符串常量与字符常量的区别:如'a'为字符常量,"a"则为字符串常量,
两者虽然都只有一个字符,但在内存中占用实际内存单元的数量不同。字符常量'a'在内存中占1个字节,字符串常量"a"在内存中占2个字节,除字符a外还有字符串结束符‘\0’,该字符也将占用一个字节空间,以表示字符串的结束。
2、标识符
定义常量
在 C 中,有两种简单的定义常量的方式:
使用 #define 预处理器。
使用 const 关键字。
#define 预处理器
下面是使用 #define 预处理器定义常量的形式:
#defineidentifier value
具体请看下面的实例:
实例
#include
<stdio.h>
#define LENGTH
10
#define WIDTH
5
#define NEWLINE
'\n'
int
main()
{
int
area;
area =
LENGTH *
WIDTH;
printf("value
of area : %d",
area);
printf("%c",
NEWLINE);
return
0;
}
当上面的代码被编译和执行时,它会产生下列结果:
value of area:50
说明:如再用赋值语句给LENGTH、WIDTH赋值是错的
LENGTH、WIDTH/* 错误,不能给符号常量赋值
说明:程序中用#define命令行定义LENGTH、WIDTH代表常量10、5,此后凡在本文件中出现的LENGTH、WIDTH都代表10、5,可以和常量一样进行运算.
const 关键字
您可以使用 const 前缀声明指定类型的常量,如下所示:
consttype variable=value;
3、符号常量
当某个常量引用起来比较复杂而又经常引用时,将该常量定义为符号常量,即用标识符表示这个常量,并在程序中需要使用该常量的地方直接引用标识符。符号常量在使用前必须先定义。
定义格式:#define 标识符 常量
#define是预处理命令(以"#"开头),功能是将标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代表一个常量值。
习惯上,符号常量名用大写英文标识符。
具体请看下面的实例:
实例
#include <stdio.h> int main() { const int LENGTH = 10; const int WIDTH = 5; const charNEWLINE =
'\n'; int area; area = LENGTH * WIDTH; printf("value
of area :
%d", area); printf("%c",NEWLINE); return 0; }
当上面的代码被编译和执行时,它会产生下列结果:
value of area : 50
请注意,把常量定义为大写字母形式,是一个很好的编程实践。