C语言—常量


常量

1 概念

在整个程序运行的过程中,值不允许发生变化的量。

2 常量的分类

整型常量 前缀 输出时的占位符 例如
十进制 无 %d 1314
二进制 0b 无 0b1010
八进制 0 %o 0345
十六进制 0x %x 0xAB12
浮点型常量
float 单精度浮点型 4字节 %f
double 双精度浮点型 8字节 %lf(小写的L)
指数常量 %e
字符常量 %c ‘M’
字符串常量 %s “www.hqyj.com”
标识常量 宏定义 #define

3 整型常量

1 #include <stdio.h>
2
3 int main(int argc, const char *argv[])
4 {
5 int value = 100;
6 printf("%d\n", value);//十进制
7 printf("%#o\n", value);//八进制
8 printf("%#x\n", value);//十六进制
9
10 long value2 = 200;
11 printf("%ld\n", value2);//long类型输出时 要使用 %ld 做为占位符
12
13 long long value3 = 300;
14 printf("%lld\n", value3);//long long 类型要使用 %lld 输出
15
16 //常量不能被赋值 不能放在等号的 左边
17 100 = 200;
18
19 return 0;
20 }

4 浮点型常量

浮点型也叫作实型,一般是带有小数部分的。
浮点型的表示形式有两种:
一般形式:有整数和小数部分 如 3.14 5.28
指数形式:[+/-]M.Ne[+/-]T ----就是科学计数法
如: -3.1456e2 ----> -3.145610^2 --> -314.56
5.67e-2 ----> 5.67
10-2 ----> 0.0567

1 #include <stdio.h>
2
3 int main(int argc, const char *argv[])
4 {
5 //定义了一个浮点型的变量 存储 浮点型常量的值
6 float a = 3.1415926;
7 //printf 默认显示6位小数 超过的部分 四舍五入
8 printf("a = %f\n", a); //3.141593
9 // 可以使用 %.nf 的格式来指定 显示 n位小数 超过的部分 四舍五入
10 printf("a = %.2f\n", a);//3.14
11
12 double b = 3.1415926;
13 printf("b = %lf\n", b);//3.141593
14 printf("b = %.2lf\n", b);//3.14
15
16 float c = 314.567;
17 //也可以按指数形式输出
18 printf("c = %e\n", c);// 3.14567e2
19
20 //也可以使用指数常量给变量赋值
21 float d =3.145678e3;
22 printf("d = %f\n", d);// ‐3145.678000
23
24 double f = 3.1456e‐2;
25 printf("f = %lf\n", f);// 0.031456
26
27 return 0;
28 }

5 字符常量

字符:就是我们前面说的一个非数值型数据
形式:如果是字符常量 必须用单引号 ‘’ 引起来,且单引号中只能引一个字符
如:‘M’ ‘h’ ‘8’ ‘\n’ ‘\0’
字符就是整型,整型就是字符,具体看我们怎么用。

1 #include <stdio.h>
2
3 int main(int argc, const char *argv[])
4 {
5 char v1 = 'A';
6 printf("v1 = [%d] [%c]\n", v1, v1); // 65 A
7
8 char v2 = '8';
9 printf("v2 = [%d] [%c]\n", v2, v2); // 56 8
10
11 char v3 = 66;
12 printf("v3 = [%d] [%c]\n", v3, v3); // 66 B
13
14 char v4 = 10;
15 printf("v4 = [%d] [%c]\n", v4, v4); // 10 换行
16
17 //思考 如何将 'M' 转换成 'm'
18 char v5 = 'M';
19 //v5 = v5+32;//字符参与运算 本质就是对应的ascii码参与运算
20 v5 = v5 + ('a''A');//和上面的写法 本质是一样的
21 printf("v5 = %c\n", v5);//m
22
23 //思考 如何将 '8' 转换成 整数 8
24 char v6 = '8';
25 //v6 = v6‐48;
26 v6 = v6 ‐ '0';//和上面的写法 本质是一样的
27 printf("v6 = %d\n", v6);//8
28
29 return 0;
30 }

6 字符串常量

字符串常量就是由连续的多个字符或者一个字符组成的
字符串需要用 双引号 “” 引起来
“www.huhugbyuj.com” “zhangsan” “M”
注意:每个字符串在存储时结尾都有一个隐藏的字符 ‘\0’ 用来标识字符串结束,所以 “hello” 占用的内存空间是 6 个字节
在代码中:
a 变量a
‘a’ 字符a
“a” 字符串a

1 #include <stdio.h>
2
3 int main(int argc, const char *argv[])
4 {
5 //可以使用字符数组存储字符串
6 char v[32] = "www.hqyj.com";
7 printf("%s\n", v);//www.hqyj.com
8
9 //也可以使用指针直接指向字符传常量
10 char *p = "hqyj";
11 printf("%s\n", p);
12
13 //注意:C语言中对字符串的处理 遇到 '\0' 就结束了
14 char v2[32] = "hello\0world";
15 printf("%s\n", v2);//hello
16
17 return 0;
18 }

7 标识常量 --宏定义

宏定义就是给表达式起一个别名,想使用这个表达式的时候,都可以使用别名来代替,如果表达式发生变化,无需修改整个代码,只需要修改定义名字时的表达式即可
宏定义的名字 简称宏名
宏定义的值 简称宏值
注意:宏名也是一个标识符 需要符合标识符命名规范 一般情况下宏名都用大写
格式:
1 #define 宏名 宏值
注意:
1.宏定义是在预处理阶段完成替换的
2.宏定义只是一个简单的替换,无脑替换
例1:

1 #include <stdio.h>
2
3 #define STUDENT 40
4
5 int main(int argc, const char *argv[])
6 {
7
8 printf("班级人数为:%d\n", STUDENT);
9 printf("班级人数为:%d\n", STUDENT);
10 printf("班级人数为:%d\n", STUDENT);
11
12 return 0;
13 }

例2:

1 #include <stdio.h>
2
3 #define VALUE1 10
4 #define VALUE2 20
5 #define SUM1 VALUE1+VALUE2
6 #define SUM2 (VALUE1+VALUE2)
7
8 int main(int argc, const char *argv[])
9 {
10 int num1 = SUM1 * 3;
11 //int num1 = VALUE1+VALUE2 * 3;
12 //int num1 = 10+20 * 3;
13 printf("num1 = %d\n", num1); //70
14
15 int num2 = SUM2 * 3;
16 //int num2 = (VALUE1+VALUE2) * 3;
17 //int num2 = (10+20) * 3;
18 printf("num2 = %d\n", num2); //90
19
20 return 0;
21 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值