- 常量是固定的数值,在c程序运行期间不能改变。
- 常量的常见类型有:整数常量、浮点常量、字符常量。
- 常量在定义后不能修改。
#includevoid main() { int a = 97; int b = 0141; int c = 0x61; int d = 97u; int e = 97l; int f = 97ul; printf(" a = %d. b = %d, c = %d, d =%d, e = %d, f = %d", a, b, c, d, e, f); }
2.2.2浮点常量
浮点常量由整数部分、小数点、小数部分和指数部分组成。
例如:
- 9.7777
- 9.7777E-4
- 9.7f
字符常量可以是字母或者转义字符,但需要用单引号包起来。
例如:
- 'a'
- 't'
一个字符串包含类似于字符常量的字符:普通的字符、转义序列和通用的字符。字符串需要用双引号包起来。字符串过长需要换行的时候不能直接用回车换行,需要用(指源代码中)。
2.3常量的定义 2.3.1#define预处理器(例如之前的C89 bool)#define 常量名 常量值
#define PI 3.14 int main() { double area; float r = 1.2f; area = PI * r * r; printf("圆的面积是%.4f", area); }2.3.2const
const 数据类型 常量名 = 常量值
#include2.3.3#define和const的注意事项const float pi = 3.14f; void main() { double area; float r = 9.7f; area = pi * r * r; printf("圆的面积是%.15f", area); }
- const带数据类型,define不带数据类型
- const在编译的过程中起作用,define在编译之前起作用,即在编译的预处理阶段就起作用。因此,const可以进行调试,define不能进行调试
- define进行的是简单替换!可以通过加括号进行正确的替换
#include
#define a 9 #define b a + 7 #define c a / b * 7 #define e ( a + 7 ) #define f a / e * 7 void main() { //其中因为define只是进行简单替换,因此c = 9 / 9 + 7 * 7 //e使用( a + 7 ),因此在进行f的计算时,f = 9 /( 9 + 7 ) * 7 //而9 / ( 9 + 7 )时,因为数据类型为int,只保留整数 //因此整数0之后的小数被截断,变成0 * 7 = 0 printf("c = %dt f = %d", c, f); } - const 不能进行重定义, define可 通过 undef取消某个符号的定义,再重新定义
#define PI 3 #undef PI // 取消 PI 的定义 #define PI 3.14
- #ifdef #ifndf #endif
#include
#define a 7 void main() { #ifdef a printf("7"); #endif #ifndef a printf("9"); #endif }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)