3. C语言 -- 变量与常量
本博客主要内容为 “小甲鱼” 视频课程《带你学C带你飞》【第一季】 学习笔记,文章的主题内容均来自该课程,在这里仅作学习交流。在文章中可能出现一些错误或者不准确的地方,如发现请积极指出,十分感谢。
也欢迎大家一起讨论交流,如果你觉得这篇文章对你有所帮助,记得评论、点赞哦 ~(。・∀・)ノ゙
1. 什么是变量和常量
变量和常量是程序处理的两种基本数据对象。我们把要让 CPU 处理的数据都放在内存中,但如果你没有给他安排一个位置,而是随意存放,那么你在后边需要再次用到这个数据的时候,就再也找不到它了。所以变量的意义就是确定目标并提供存放的空间,常量也是如此。
或者用一种形象的方法,如图1所示,我们可以理解变量和常量是存储数据的一个带有名字的坑位,在后面过的 “变量声明” 我们还将看到,它不仅仅指定了名字,还制定了坑的大小(即变量在内存中的大小)。
2. 变量名
为了确定目标,我们需要给变量命名,如下图所示,一旦变量有了名字,我们就可以通过直呼其名的方式来获取它里边存放的数据。
2.1 变量命名规范
- C语言变量名只能是英文字母(A-Z,a-z)和数字(0-9)或者下划线(_)组成,其他特殊字母不行。下横线通常用于连接一个比较长的变量名,比如
apple_pen
; - 第一个字母必须是由英文字母或者下划线开头,也就是不能用数字开头;
- 变量名区分大小写。因为C语言是大小写敏感的编程语言,也就是大写的
FISHC
跟小写的fishc
会被认为是不同的两个名字。在传统的命名习惯中,我们用小写字母来命名变量,用大写字母来表示符号常量名。 - 不能使用关键字来命名变量。
2.2 关键字
在 C 语言的规范中规定 “不能使用关键字来命名变量”,那什么是关键字呢?关键字就是 C 语言内部使用的名字,这些名字都具有特殊的含义。为了防止混淆,才规定 “不能使用关键字来命名变量”。
传统的 C 语言(ANSI C)有如下的 32 个关键字:
1999年,ISO 发布 C99,添加了 5 个关键字:
2011年,ISO 发布 C11,添加了 7 个关键字:
2.3 常用的基本数据类型
在 C 语言中常见的数据类型有以下四种:
- char —— 字符型,占用一个字节
- int —— 整型,通常反映了所用机器中整数的最自然长度
- float —— 单精度浮点型
- double —— 双精度浮点型
2.4 声明变量的语法
记得在第一部分我们有讲过在变量声明中,不仅仅要给出变量的名字,还要给出变量的大小,实际上上面的那些数据就相当于给出了变量的大小,比如说
- int a; // 在内存中找到一个整型大小的位置,然后霸占起来,并给它命名叫 a
- char b; //在内存中找到一个字节大小的位置,然后霸占起来,并给它命名叫 b
- float c; //在内存中找到一个单精度浮点型数据大小的位置,然后霸占起来,并给它命名叫 c
- double d; //在内存中找到一个双精度浮点型数据大小的位置,然后霸占起来,并给它命名叫 d
2.5 举例说明
以上一篇博文《2. C语言–打印》给出的程序为例进行说明
#include <stdio.h>
int main()
{
int a = 520;
int x = 1;
char b = 'a';
char greeting[]="two words";
float c = 3.14;
double d = 3.141592653;
printf("尝试打印输出两个整型数字%d和%d在一个句子中\n", a,x);
printf("尝试打印输出一个字符%c在一个句子中\n", b);
printf("尝试打印输出一个字符串%s在一个句子中\n", greeting);
printf("尝试打印输出一个精确到小数点后两位的数字:%.2f\n", c);
printf("尝试打印输出一个精确到小数点后9位、宽度为11位的数字:%11.9f\n", d);
return 0;
}
对于上面的这段程序,其中的int a = 520;
相当于下面这两行代码的简单表达形式
int a;
a = 520
即首先声明一个变量的名称和类型(int,也就是我们之前所说的占内存的大小),之后再给这个变量赋值一个对应数据类型的数据(在此为 int 型)。所以在格式化输出函数 printf
中,其中格式化的含义正如上面的程序所展示的,所谓的格式化输出就是将不同类型的数据转化为字符串的形式再打印出来,比如printf("尝试打印输出一个字符%c在一个句子中\n", b);
中就是将 b
作为字符型数据转换到字符串%c占位的位置再输出。
3. 常量
3.1 常见常量
常见的常量有以下几种:
- 整型常量: 1,2,443
- 实型常量:3.14,5.8989
- 字符型常量:普通字符,如‘a’,‘b’,‘c’
转义字符,如‘\n’,‘\t’,‘\b’ - 字符串常量:“Apple”
- 符号常量:在使用之前要首先定义
3.2 符号常量
符号常量是在C语言中,可以用一个标识符来表示一个常量,这个标识符称之为符号常量。其特点是编译后写在代码区,不可寻址,不可更改,属于指令的一部分。
其使用格式为 #define 标识符 常量
,如下所示
#define URL "https://me.csdn.net/dugudaibo"
#define NAME "我的博客主页"
#define YEAR 2018
其中的标识符只能是英文字母(A-Z,a-z)和数字(0-9)或者下划线(_)组成,并且第一个字母必须是字母或者下划线开头,这点与变量的要求是一样的。同样的标识符区分大小写并且不能使用关键字来命名标识符
参考
[1] “小甲鱼” 视频课程《带你学C带你飞》【第一季】P4
[2] 百度百科–符号常量
欢迎大家关注我的知乎号(左侧)和经常投稿的微信公众号(右侧)