C语言里面的常量是什么?
C语言里面的常量是指不会变化的常数或编码,例如圆周率3.14就可以定义为一个常量。
“常量”的广义概念是“不变化的量”,例如:在计算机程序运行时,不会被程序修改的量;数学函数中的某一个量,例如每一个具体的圆的半径、直径数值;物理学中的靠近地面的重力加速度;真空中的光速数值;不同的微粒的各自的质量。
一层含义指它们的编码方法是不变的,但是严格来说“人为规定的某一种方法也可以因地制宜而人为改变,所以其本身数值大小‘不是‘常量’的内涵”。比如字符'A'无论在硬件、软件还是各种编程语言中,它的信息编码即为 “ 0x41”。
扩展资料:
C语言中,常量概念容易存在的错误解释:
在除了“C/C++”的一些高级程序语言中,“常量”可以被称作,“在一个信息变化过程中,始终不发生改变的量”,其可以是不随着时间变化的某些量的固定信息;也可以表示为某一数值的字符(或字符串),常被用来标识、测量和比较两者的差异。
但在 “C/C++语言中”,“常量”如果还用“运行过程中不变的量”来描述,就显得不太准确了,甚至是在具体使用时,这就是一个错误的概念。
在 “C/C++”中,定义“指针常量”时,根据“const ”的位置的不同,可以定义出几个不同的形式,虽然其看起来“符合常量的概念”,但是在实际运行中,其值或地址值是会发生变化的,所以本质还不是“常量概念”。
参考资料来源:百度百科-常量 (编程语言)
C语言的常量有整数常量,实型常量,字符常量,符号常量等。
1、整数常量
整数常量是指直接实用的整形常数,又称整形常数或者整数,例如,1,-9等。整数常量可以是长整形、短整型、符号整型和无符号整型。
a)八进制数
八进制整数必须以0开头,即以0作为八进制数的前缀。数字取值范围为0—7.八进制数常是无符号数
b)十进制数
十进制数是不需要在其面前加前缀的。十进制数中包含的数字0—9组成。
c)十六进制数
常量前面使用0x作为前缀,表示该常量是用十六进制表示。十六进制中所包含的数字由0—9以及字母A—F组成(十六进制数中的字母可以使用A—F大写形式,也可以使用a—f小写形式。)
整数数据都以二进制的形式存储在计算机中,其数值以补码的形式表示。一个正数的补码与其原码形式相同,一个负数的补码是将该数绝对值的二进制形式按位取反再加1.
2、 实型常量
实型称浮点型,由整数和小数部分组成,其中用十进制的小数点隔开。表示实数的方式由科学计数和指数方式两种。
a)科学计数方式
科学计数方式就是使用十进制的小数方法进行描述实型
b)指数方式
若实数非常大或非常小,使用科学计数方式则不利于观察,此时可以使用指数方法显示实型变量。使用字母e或者E进行指数显示,如45e2表示4500,而45e-2表示的是0.45
在编写实型常量时,可以在常量的后面加上那个符号F或者L进行修饰。
F表示该常量是float单精度类型,L则表示该常量是为long double长双精度类型。
如果不在后面加上后缀,那么默认的状态下,实行常量为double双精度类型。
3、 字符型变量
字符型常量可以分为字符常量和字符串常量
a)字符常量
字符常量分为一般字符常量和特殊字符常量。
使用单撇号括起一个字符的形式即字符常量。使用字符常量需要注意以下几点:
字符常量只能用单撇号括起来, 不能使用单引号或其他括号。
字符常量中只能包括一个字符,不能是字符串。
字符常量是区分大小写的。
单撇号代表定界符,不属于字符常量中旳一部分。
单撇号里面可以是数字、字母等C语言字符集中除’和\以外所有可现实的单个字符,但是数字被定义为字符之后则不能参与数值运算。
特殊字符常量就是转义字符。转移字符是C语言中表示字符的一种特殊形式,其含义是将反斜杠后面的字符转换成另外的意义。
在使用注意字符时应注意:
转义字符只能使用小写字母,每个转义字符只能看成一个字符。
垂直制表符\v和换页符\f对屏幕没有任何影响,但会影响打印机执行响应操作。
在C语言程序中,使用不可打印字符时,通常用转义符表示。
如果反斜杠之后的字符和他不构成转移字符,则’\’不起转义作用,将被忽略。
b) 字符串常量
字符串常量是一对用双引号括起来的若干字符序列。字符串中字符的个数称为字符的长度,长度为0的字符串称为空串。
C语言中存储字符串常量时,系统会在字符串的末尾自动加一个’\0’作为字符串结束的标志。
4、 符号常量
在C语言中,通常将程序中的常量定义为一个标识符,这个常量就叫做符号常量。在使用符号常量之前必须先进行定义,大多数情况下,符号常量用大写英文字母表示。定义符号常量的一般形式:
#define 符号常量名 常量值
整数常量:integer-constant
浮点常量:floating-constant
枚举常量:enumeration-constant
字符常量:character-constant
常量是一个右值,可以把右值赋给一个左值
int a = 1; 这里的1确实是常量,是一个整数常量
像 123、"aaaaa 文字"、3.14f、这些都是字面量。
而像 const float PI=3.14f,这个PI 就是const常量。
如:
1. #define Pi 3.1415926f;
2. const float pi 3.1415926f;