常量
在C语言中,数据的基本表现形式是常量和变量。不管是变量还是常量,都是需要在内存中申请一块空间,用于数据的存放。
定义:在程序执行过程中其值不可改变的量。称之为常量。
分类:int、float、double、char、符号常量(宏定义)。
整型常量
-
整型常量可以用十进制、八进制、十六进制三种形式表示。
-
十进制常量:由数字0~9构成,没有前缀,不能以0开头。举例:
99,218 // 正确 0 // 正确 09 // 错误,不能以0开头 -
八进制常量:由数字0~7构成,以0为前缀,不能表示小数。举例:
023,077 // 正确 00 // 正确 099 // 错误 -
十六进制常量:由数字0~9、字母a ~ f/A ~ F构成,以0x / 0X为前缀,不能表示小数。举例:
0xffffff // 正确 0x0 // 正确
注意:
整型常量中的长整型数据可用
L或者l作为后缀,举例:long num = 123L; -
-
整型常量的分类:
-
有符号与无符号基本整型常量(int)
-
有符号表示范围:负数 + 0 + 正数,默认写的都是有符号
-
无符号表示范围:0 + 正数,内存中所有负数的位置都用来表示整数,此时它的正数范围超过有符号正数范围。
-
-
有符号与无符号长整型常量(long)
-
有符号与无符号短整型常量(short)
-

-
整型常量的表示
-
十进制表示:可以使用10个数字符号0~9以及
+,-,如:123,-90 -
八进制表示:以0开头,可以使用7个数字符号0~7以及
+,-,如:0123,-011 -
十六进制表示:以0x或者0X开头,可以使用
0~9以及A~F(a~f),如:0x12,-0x12
-
浮点型常量
C语言中浮点数就是平常说的小数(实数),有两种表现形式:
-
十进制小数:如:0.123,-12.6,0.123F(float类型的常量,需要跟上
F/f) -
指数形式(科学计数法):
-
正数表示:如十进制小数1234.5的指数表示法就是1.2345*10^3,也可以表示为1.2345e3
-
负数表示:如十进制小数0.012的指数表示法就是1.2*10^{-2},也可以表示为1.2e-2
-
注意:
① 在符号e的前面必须要有数字
② 在符号e的后面必须为整数,不能是带有小数点的实数型。
③ 实型常量的后缀用F/f表示单精度型。
字符型常量
用单引号''括起来的一个字符,如'a', 'A', '4', '_'等,比如:'刘'就不是字符,一个汉字所占的字节数超过1个字符。中文符号当成汉字理解。英文输入法下输入的字母、数字、符号都是单字符。
转义字符常量:以反斜杠\开头的字符序列,表示控制以及不可见字符。如:
| 字符形式 | 中文含义 | ASCII码 |
|---|---|---|
| \n | 换行 | 10 |
| \r | 回车 | 13 |
| \0 | 空字符 | 0 |
| \t | 水平制表符 | 9 |
注意:
使用
man ascii可以查看所有的ASCII字符。
字符串常量
说明:在C语言中,支持字符串常量,不支持字符串变量。字符串变量需要使用字符数组或者字符指针实现。
-
用一对双引号
""括起来的一个字符序列,如:"How do you do? zhaopeipei" "hello world!" "12" “true” "12.25" -
可以使用printf输出一个字符序列,如:
printf("%s","hello world!\n"); printf("hello world!\n"); // 等价于上面写法
注意:
字符常量'a'与字符串常量"a"的区别:
系统自动为字符串常量加上结尾的
\0,使所占内存单元多一个,单字符常量的长度不变,可用sizeof()运算符来测量。
符号常量
说明:一般通过宏定义,在预处理的时候替换成具体的常量
定义一个标识符来代表一个常量,如:用PI表示圆周率π(3.1415926)
好处:
-
增加代码的可读性
-
增强了代码的可维护性
定义符号常量:
-
需要借助预处理指令:
#define -
格式:
#define 宏名称 宏值 -
注意:
-
宏名称和宏值之间用空格隔开
-
句末不能添加任何符号
-
无参的宏名称的命名采用大写,如果有多个单词,使用下划线分隔,举例:
#define MAX_VAL 9999 #define MIN_VAL 1000
-
-
举例:
#include <stdio.h> // 定义符号常量 #define PI 3.14 #define R 20 int main(int argc,char *argv[]) { // 计算圆的周长 2 × PI × R printf("计算圆的周长:%f\n",2 * PI * R);// %f:以小数显示 // 计算圆的面积 PI × R × R printf("计算圆的面积:%f\n",PI * R * R); return 0; }
日常错误
-
问题描述:编译过程中,控制台提示类似于
\357这样的信息 -
解答:这是由于代码中使用了中文标点符号导致的错误
-
演示:


1万+

被折叠的 条评论
为什么被折叠?



