一、什么是常量
常量是固定值,在程序执行期间不会改变。又叫做字面量。
比如:1就是1,‘a’就是’a’,1不会变成2,而’a’也不会变成’b’。
常量可以是任何的基本数据类型,比如整数常量、浮点常量、字符常量,或字符串字面值,也有枚举常量。
- 1、整型常量
整数常量可以是十进制、八进制或十六进制的常量。
如:
66 /* 十进制 */
0123 /* 八进制 */
0x5A /* 十六进制 */
69 /* 整数 */
69u /* 无符号整数 */
69l /* 长整数 */
69ul /* 无符号长整数 */
011UU /* 非法的:不能重复后缀 */
068 /* 非法的:8 不是八进制的数字 */
- 2、浮点常量
浮点常量由整数部分、小数点、小数部分和指数部分组成。
您可以使用小数形式或者指数形式来表示浮点常量。
如:
3.141 /* 小数,合法的 */
314159E-5L /* 指数,合法的 */
620E /* 非法的:不完整的指数 */
220f /* 非法的:没有小数或指数 */
.e15 /* 非法的:缺少整数或分数 */
- 3、字符常量
字符常量可以是一个普通的字符(例如 ‘x’)、一个转义序列(例如 ‘\t’)
转义字符:
字符 | 含义 |
---|---|
\\ | \ 字符 |
\’ | ’ 字符 |
\" | " 字符 |
\? | ? 字符 |
\a | 警报铃声 |
\b | 退格键 |
\f | 换页符 |
\n | 换行符 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
- 4、字符串常量
字符串常量是括在双引号 “” 中的。
"hello, world"
"hello, \
world" //使用 \ 可以将字符串换行
"hello, " "w" "orld"
二、定义常量
1.使用 #define 宏定义。
2.使用 const 关键字。
- 1、#define 宏定义
#define identifier value
#define是预处理指令,在代码编译时,使用value替换模板identifier。
#define HEIGHT 20
#define WIDTH 15
#define WEIGHT 75.0f
注意:#define语句后不需要分号(?。
- 2、const关键字定义
const type variable = value;
一旦variable被定义,其值不允许被改变。
const int HEIGHT = 20;
const int WIDTH = 15;
const float WEIGHT = 75.0f;
HEIGHT = 30; //编译报错,const变量不允许再被赋值。
三、输出
- 占位符
“%d” : 输出int、short类型的数据 。
“%ld” : 输出long类型的数据。
“%c” : 输出char类型的数据。
“%f” : 输出float、double类型的数据。
short si = 2;
int i = 3;
long l = 10;
char c = 'A';
float f1 = 13.1415;
double f2 = 1.414;
printf("%d、%d、%ld、%c、%f、%f\n", si, i, l, c, f1, f2);
输出
2、3、10、A、13.141500、1.414000
- %d和%ld 可以加入数字控制输出格式,如 %8d ,输出是一共占用8个位置。
int a = 2;
printf("%8d\n", a);
printf("%08d\n", a);
输出:
2
00000002
- %f 默认是6位小数输出;可以在%f中控制;例如:%.2f:输出两位小数。
float f1 = 3.1415926535;
double f2 = 3.1415926535;
printf("%f、%.10f\n", f1, f2);
输出
3.141593、3.1415926535
- “%o” : 输出八进制数据。注意:八进制数据以0(零)开头。
- “%x” : 输出十六进制数据。注意:十六制数据以0x开头。
int a = 14;
printf("十进制a:%d,八进制a:%o,十六进制a:%x\n", a, a, a);
输出
十进制a:14,八进制a:16,十六进制a:e
四、输入
从键盘接受用户输入的数据, 如:
问:你多岁了?
答:18(岁)
问:你体重多岁?
答:65.5(KG)
问:你这次成绩登记多少?
答:A
C语言中输入语法:(其他输入方式在后续章节讲解)
int scanf(const char *format, …);
上面看不懂没关系,我们在函数章节中会讲解,下面举例。
int age = 0;
float weight = 0;
char level = 0;
printf("你多少岁了?:");
scanf("%d", &age);//输入整数,&符号后续章节讲解
printf("你体重多少KG?:");
scanf("%f", &weight);//输入浮点数
printf("你成绩优秀等级?:");
rewind(stdin);//清空输入缓存,注意在输入字符的时候,会接收到上次输入的回车,所以要清空一下。
scanf("%c", &level);//输入字符
printf("age:%d, weight:%.2f, level:%c\n", age, weight, level);
交互输出:(其中20,60,A为用户输入)
你多少岁了?:20
你体重多少KG?:60
你成绩优秀等级?:A
age:20, weight:60.00, level:A
注意:scanf输入,接受变量前要使用 & 符号,不然会内存报错
练习:(*表示用户输入项)
输入你的姓名,性别,及年龄,身高放入三个不同类型的变量中,要求格式如下
请输入你的身高:
\***
请输入你的性别:(M、F表示男、女)
\*
请输入你的年龄:
\**
身高 性别 年龄
\*** * **