🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 变量及赋值 ### 变量就是可以变化的量,而每个变量都会有一个名字(标识符)。变量占据内存中一定的存储单元。使用变量之前必须先定义变量,要区分变量名和变量值是两个不同的概念。就好比:住在房间里的客人与房间号是两个不同的概念。 ![](http://img.mukewang.com/547ee8510001562101960154.jpg) 变量定义的一般形式为:`数据类型 变量名;` 多个类型相同的变量:`数据类型 变量名, 变量名, 变量名...;` ![](http://img.mukewang.com/5492b58f0001043803840131.jpg) 变量名和标识符的命名规范完全相同。%d在后面会有详细讲解 **注意:在定义中不允许连续赋值,如int a=b=c=5;是不合法的。** 变量的赋值分为**两种方式:1.先声明再赋值 2.声明的同时赋值**,例如: ![](http://img.mukewang.com/550aa8d000017f4202330103.jpg) ### 常量 ### 值不发生改变的量称为常量。C语言的常量可以分为直接常量和符号常量。 接常量也称为字面量,是可以直接拿来使用,无需说明的量,比如: - 整型常量:13、0、-13; - 实型常量:13.33、-24.4; - 字符常量:‘a’、‘M’ - 字符串常量:”I love imooc!” 下面的代码分别打印这四种直接常量: ![](http://img.mukewang.com/5492b6fe00017e5b03490079.jpg) 在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。符号常量在使用之前必须先定义,其一般形式为: `#define 标识符 常量值 ` 符号常量的标示符一般习惯使用大写字母,变量的标示符一般习惯使用小写字母,加以区分。下面是一个使用符号常量的小例子: ![](http://img.mukewang.com/5492b73b0001169f03890127.jpg) #### 符号常量之宏 #include<stdio.h> #define PRICE 10.5 int main() { int num=20; //num代表数量 double money; // money代表金额 money=PRICE*num; //算出总金额 printf("20本《格林童话》的售价为:%.2f",money); //%.2f小数点后只显示2位 return 0; } **C语言允许我们给常量取个别名 如:#define PRICE 10.5 ,预定义处理命令#define给10.5取个别名叫PRICE,PRICE就是宏,它是代替常量的标识符,此后凡是在文本文件中出现的PRICE都代表100。** **#define是个预处理命令,它在编译器编译代码之前运行,它后面所跟的标识符就是所谓的符号常量,又称宏名,宏名后面是宏体,当执行预处理命令时,会将所有的宏名替换为宏体,这个工作叫宏交换或者宏展开。** 不能对常量进行赋值,宏尽量要大写。 #### const常量 #include <stdio.h> int main() { const int num=3; //const常量只能被初始化 num=4; //错,const常量不能被赋值 return 0; } C语言除了用 #define来为常量命名外,还可以用const来定义常量,如上诉代码,关键字const放在变量num前面,将num的属性改为只读。不可再修改。 > **const常量与宏的区别,const常量有数据类型,而宏没有数据类型,由于const常量有数据类型,因此编译器可以对常量的类型,进行安全检查,当发现类型与实际数值不匹配时,会发出警告,但是宏没有数据类型,因此无法进行安全检查,这样在进行宏替换时有可能产生不可意料的错误。** **注意:常量是不可改变的**