C语言常量和文字
常量是指该程序可能无法在其执行期间改变的固定值。这些固定值也被称为文字。
常量可以是任何像一个整型常量,一个浮点常量,字符常量或字符串文字的基本数据类型。还可以是枚举常量。
常量只是它们的值不能定义后像常规变量进行修改处理。
常量整型
整数常量可以是十进制,八进制,或十六进制常数。前缀指定基或基数:0x或0X的十六进制,0表示八进制,十进制不用特别表示。
整数常量/文字也可以有一个后缀为U和L的组合,分别为无符号和长整型。后缀可以是大写或小写,并且可以以任意顺序。
这里是整数常量的一些例子:
212/* Legal */215u/* Legal */0xFeeL/* Legal */078/* Illegal: 8 is not an octal digit */032UU/* Illegal: cannot repeat a suffix */
以下是不同类型的整型常量的其他例子:
85/* decimal */0213/* octal */0x4b/* hexadecimal */30/* int */30u/* unsigned int */30l/* long */30ul/* unsigned long */
浮点文字/常量
浮点字面值具有整数部分,小数点,小数部分和指数部分。可以表示十进制形式或指数形式浮点文字。
同时采用十进制形式表示,则必须包括小数点,指数,或两者并用而指数形式表示,则必须包括整数部分,小数部分,或者两者兼有。无符号的指数,通过e或E引入
下面是浮点面值/常量的一些例子:
3.14159/* Legal */314159E-5L/* Legal */510E/* Illegal: incomplete exponent */210f/* Illegal: no decimal or exponent */.e55/* Illegal: missing integer or fraction */
字符常量
字符文字用单引号,例如,'X' 可以存储在char类型的一个简单的变量。
字符文字可以是一个普通的字符(例如,'X'),转义序列(如“')或普遍性 (e.g., 'u02C0').
有一些字符在C语言中,当它们前面加一个反斜杠将有特殊的含义,它们被用来表示类似的换行符(
)或制表符()。在这里,有一些这样的转义序列代码的列表:
转义序列
含意
\
字符
'
' 字符
"
" 字符
?
? 字符
a
警报或钟
退格
f
换页
换行符
回车
水平制表
v
水直制表
ooo
一到三位数字的八进制数表示形式
xhh . . .
一个或多个数字的十六进制数
以下为例子来说明一些转义字符序列:
#includeintmain(){printf("HelloWorld
");return0;}
当上述代码被编译和执行时,它产生了以下结果:
Hello World
字符串文字
字符串文字或常量用双引号“”。一个字符串包含类似于字符文字字符:普通字符,转义序列和通用字符。
可以使用字符串和分隔使用空格打破长行变成多行。
下面是字符串的一些例子。所有的三种形式是相同的字符串。
"hello, dear""hello,
dear""hello, ""d""ear"
定义常量
C语言有两种简单的方法来定义常量:
使用#define预处理。
使用const关键字。
#define预处理
下面是使用预处理 #define 定义常量形式:
#defineidentifier value
下面的例子说明了它的细节:
#include#defineLENGTH10#defineWIDTH5#defineNEWLINE'
'intmain(){intarea;area=LENGTH*WIDTH;printf("value of area : %d",area);printf("%c",NEWLINE);return0;}
让我们编译和运行上面的程序,这将产生以下结果:
value of area : 50
const关键字
可以使用 const的前缀来声明常量与一个特定的类型如下:
consttype variable=value;
下面的例子说明了它的细节:
#includeintmain(){constintLENGTH=10;constintWIDTH=5;constcharNEWLINE='
';intarea;area=LENGTH*WIDTH;printf("value of area : %d",area);printf("%c",NEWLINE);return0;}
让我们编译和运行上面的程序,这将产生以下结果:
value of area : 50
请注意,一个 良好的编程习惯是使用大写来定义常量。