在C语言中,根据存储方式和表示形式,数据有常量和变量之分,就像方程有已知数和未知数一样。那么,你知道二者的区别和应用吗?让我们开始“常量和变量”之旅吧!
<一>常量:
常量是程序中不可改变的量,常以字面量,或者宏[#define( 在预处理就处理)]的方式出现。主要用于赋值或是参与计算,并且常量也是用类型的。常量主要分为数值常量、字符常量、字符串常量和符号常量四种。在这里,我先说一下字符常量和字符串常量的区别。周所周知在C语言中,字符常量就是指单引号里的单个字符,eg:‘a’;而字符串常量用双引号,eg:“a” 。但两者的存储空间也有不同,在内存中,字符常量只占用一个存储空间,而字符串存储时必须有占用一个存储空间的结束标记'\o',所以,'a'占用一个,而"a"占用两个;还有二者的操作功能也不相同,eg:字符常量可进行加减运算,字符串常量不能。
举个字符常量的例子:
01 #include02 int main()
03 {
04 printf("a,A \n"); /*输出a,A并换行*/
05 printf("123\x20\'\x20\"\n"); /*输出123、空格、 单引号、空格和双引号,最后换行*/
06 return 0;
}
接下来说一下符号常量吧。首先,符号常量不同于变量,它的值在其作用域内不能改变,也不能被赋值。 在拼写习惯上,符号常量名用大写英文标识符,而变量名用小写英文标识符,以示区别。 定义符号常量的目的是为了提高程序的可读性,便于程序的调试和修改。因此在定义符号常量名时,应尽量使其表达它所代表的常量的含义。 而且符号常量对程序中用双引号括起来的字符串,即使与符号一样,预处理时也不做替换。
<二>变量
变量用于存储程序中可以改变的数据。其实变量就像一个存放东西的抽屉,知道了抽屉的名字(变量名),也就能找到抽屉的位置(变量的存储单元)以及抽屉里的东西(变量的值)等。当然,抽屉里存放的东西也是可以改变的,也就是说,变量里的值也是可以变化的。
简单的来说,变量的定义:类型 变量名;
经过一些推敲总结出变量的4个基本属性:
⑴ 变量名:一个符合规则的标识符。⑵ 变量类型:C语言中的数据类型或者是自定义的数据类型。⑶ 变量位置:数据的存储空间位置。⑷ 变量值:数据存储空间内存放的值。
程序编译时会给每个变量分配存储空间和位置,程序读取数据的过程其实就是根据变量名查找内存中相应的存储空间,从其内取值的过程。
变量的命名规则:
a.变量名可以由字母、数字和_(下划线)组合而成;
b.变量名不能包含除_ 以外的任何特殊字符,如:%、# 、逗号、空格等;
c.变量名必须以字母或_(下划线)开头。变量名不能包含空白字符(换行符、空格和制表符称为空白字符);
d.C 语言中的某些词(例如int 和float 等)称为保留字,具有特殊意义,不能用作变量名。
变量的命名,本人建议用“驼峰命名法”eg:myFirstBook。