linux c常量简介

linux c常量简介
常量在程序的执行过程中保持不变,也不可通过程序修改此常量的值,否则系统会报错。
常用的常量: 整型常量 浮点常量 字符常量 字符串常量

1 整型常量

整型常量就是整常数,在c语言中,整型常量有 十进制 八进制 十六进制区分,在c语言中,我们需要根据前缀来区分整型常量的进制。

1.1 十进制整型常量
十进制整型常量没有前缀,其组成部分为(0~9),开头数不能为0.
例:
2 //正确
3 //正确
32 //正确
056 //不能有0开头的数字
56C //不能包含非0~9的数字
-100 //正确 负数整型常量

1.2 八进制整型常量
八进制整型常量以0开头,其组成部分(0~7).八进制通常是无符号常量。
例:
056 //正确
086 //错误 包含数字8
19 // 错误 非0开头 包含数字9
014456 //正确
-0136 //错误 出现了负号

1.3 十六进制整型常量
十六进制常量是以0X或0x开头的整型,其组成部分 (0~9 A~F a~f)
例:
0X2a //正确
x87 //十六进制开头错误
0x8H //十六进制不能包括 H

1.4 整型常量的后缀
当使用的数超过了整型数的范围,必须使用长整型来表示。
长整型是用后缀 “L”或”l”来表示。如果是一个无符号的整型常量,则在整数值后面加上”U”或”u”, 无符号的整型常量表示方法”UL”/”LU” “lu”/”ul”。
例:
158L =158
012L =012
0x38au =0x38a



2 浮点型常量

浮点型也称之为实型,浮点型常量称为浮点数或实数。
在c语言中,浮点型常量只采用十进制表示,它有两种形式: 1 十进制小数形式 2 指数形式
2.1 十进制小数形式–必须有小数位的存在
由0~9和小数点组成
例:
0.0 2.0 5.61 -788.34

2.2 指数形式
由符号+/-、整数部分 小数点 小数部分 指数部分(e或e+/-n)和浮点数后缀组成。
[+/-][整数部分][.][小数部分][(e,E)+/-n][后缀]
整数部分.小数部分称为尾数
e+/-n或E+/-n表示尾数乘10的正或负n次方,n为1~3位十进制无符号整常数,可以前置0,但并不表示八进制。
后缀表示浮点数的类型: f/F l/L
无后缀f时表示为double 有后缀f时表示 float
当后缀为l 并且类型为double 表示类型为 long double
例:
-1.7896543e+4 或 -1.7896543e+04 都表示-1.7896543*10000=-17896.543。

合法的浮点型:
.678e+12 无整数部分
1.0 无小数部分
8e8 无小数点但有指数
1.89 无指数部分
+1.23e-6f 1.23+10的负6次方 float类型
1.89e+300L 1.89+10的300次方 long double类型
错误的浮点型:
567 无小数点
-e67 无整型和小数位
100.-e4 负号位置不对
-9 无小数位
9.8e e后面无数值错误


3 字符型常量

字符串常量是用单引号包含起来的一个字符。
例 以下都是正确的字符型常量 :
‘a’ ‘=’ ‘?’

在字符型常量中,单引号不能直接包含 双引号 单引号 反斜杠,如果需要包含这些特殊字符,我们需要使用转义字符.
例: ‘\\’ ‘\”‘


4 字符串常量

字符串常量是由一对双引号包含起的字符,字符串常量所占用的内存位置比字符串的大小多一个字节。
例:
“adeal” “test” “%34”

字符串常量 和字符常量的区别:
1 一个使用单引号 一个使用双引号
2 两个占用的内存的字节数不一样 字符常量赋值给字符串常量后,字符串常量所占用的内存+1
3 一个是单个字符 一个是一个字符或多个字符
4 字符常量可以赋值给字符串常量,但字符串常量不能赋值给字符常量


5 符号常量

采用符号定义的变量称之为符号常量,符号常量在使用之前需先定义,如下:
#define r 5.8
其中define是一条预处理命令称之为宏定义命令。其功能是把该标识符定义为其后的常量值,定义后,在程序中,出现该标识符的地方均为采用此常量值替换。