C语言 — 这是一种既有汇编语言强大的功能,又有汇编语言的灵活性的编程语言。
— Edsger Dijkstra
文章目录
- 序言
一、常量
- 定义
- 常量分类
二、变量
- 定义
- 变量的赋值
三、枚举常量
- 特点
- 具体例子
四、常变量
- 关键词:const
- 区分#define和const
对于基本数据类型量,按其值是否可变又分为常量和变量两种。
在程序执行的过程中,其值不发生改变的量称为常量,其值可变的量称为变量。
它们可以和数据类型结合起来分类,例如,可分为整型常量、整型变量、浮点常量、浮点变量、字符常量、字符变量,接下来的文章我们将分别大致介绍一下常量与变量。
一、常量 定义
常量是指在程序运行过程中其值不发生改变的量称为常量
常量分类常量 | 说明 |
---|---|
直接常量 | 可直接使用,无需任何说明的量,例如整形常量,实型常量以及字符常量 |
符号常量 | 用标识符代表一个常量,C语言中,可以用一个标识符表示一个常量,称之为符号常量 |
注:在使用符号常量之前,必须先对其进行定义,一般形式为:
#define 标识符 常量
其中#define又称 宏定义 ,标识符为所定义的宏名。
其功能是把该标识符定义为其后的常量值。
定义之后,一旦以后的程序再次出现该标识符的地方均用该常量值替代
*tip:通常上符号常量的标识符用大写字母,变量标识符用小写字母,以示区别
符号常量使用例子:
#include
#define price 30
int main()
{
int num = 0;
int total = 0;
num = 10
total = num * price;
printf("total = %d", total);
return 0;
}
二、变量 定义
C语言中的变量是指在程序运行时其值可以改变的量,变量的功能就是存储数据。
每个变量都有特定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中
这里要提一句,一定要区分清楚变量名和变量值是完全不同的两个概念:
变量定义的一般形式为:
类型说明符 变量名, …
定义变量时的一些注意事项:
①:最后一个变量名之后必须以“;”号结尾
②:变量定义必须放在变量使用之前
③:允许在一个类型说明符后,定义多个相同类型的变量,各变量名之间用逗号间隔
变量定义举例:
int num;
double price = 123.123;
char a = 'a'
......
变量的赋值
变量可以先定义再赋值,也可以在定义的同时赋值;在定义变量的同时赋初值称为初始化
在变量定义中赋初值的一般形式为:
类型说明符 变量1 = 值1, 变量2 = 值2,…
例如:
int a=3;
int b,c=5;
float x=3.2,y=3.0,z=0.75;
char ch1='A',ch2='B';
这里有一个注意事项:在定义中不允许连续赋值,如a=b=c=100是不合法的
三、枚举常量
这边把枚举常量拉出来单独讲是因为它有其独特的地方
特点枚举常量是要占用内存的,它要在内存中开辟一个空间来存放枚举变量;其常量值在没有赋值时系统会默认给它的第一个变量赋值0,后面的依次为1、2…使用枚举类型的最大好处是使得程序可读性增强。
定义enum需在下面打出
{
};
具体例子enum Sports
{
//枚举常量
basketball,
score,
tennis
};
int main()
{
enum Sports s = basketball;
printf("baskerball = %d\n", basketball);
printf("score = %d\n", score);
printf("tennis = %d\n", tennis);
return 0;
}
注:
1.枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用,隔开
2.可以人为设定枚举成员的值,从而自定义某个范围内的整数
3.枚举型是预处理指令#define的替代
4.类型定义以分号;结束
四、常变量 关键词:const
这里就要提一个关键字:const
通俗的解释就是,const 定义的是变量,但又相当于常量;说它定义的是常量,但又有变量的属性,所以叫常变量。
用 const 定义常变量的方法很简单,就在通常定义变量时前面加 const 即可,如:
const int a = 10;
区分#define和const
注:要区分#define命令定义的符号常量和用const定义的常变量
const 定义的是变量不是常量,只是这个变量的值不允许改变是常变量!带有类型。
编译运行的时候起作用存在类型检查。
define 定义的是不带类型的常数,只进行简单的字符替换。
在预编译的时候起作用,不存在类型检查。
至于二者在编译器处理方式,类型和安全检查,存储方式等方面的不同后续会再分享博客详细分析
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)