高二C语言基础
第一章 1.1 C语言概述
第一章 1.2 C语言的特点
01.VS开发环境的搭建
02.第一个C语言程序
03.C语言基础语法知识
04.整型数据类型
05.浮点数据类型
06.变量与常量
07.字符常量及字符变量
08.printf函数详细解析(上)
汝城县职业中等专业学校知识库-信息中心朱老师编辑
-
+
首页
06.变量与常量
06.变量与常量
## 01.变量与常量 ### 1. 变量与常量 在整个程序的运行过程中,没有变化且不能变化的,我们称之为**常量**。 在程序运行期间,可以改变并且有可能会改变的,我们称之为**变量**。 ### 2. 声明变量 在前几节中,我们已经接触过如何声明一个变量了: ``` short s; int n; long l; float f; double d; ``` 声明变量的公式:**类型 + 标识符 + 分号** 标识符:**由我们自己命名的一个标识,用于表示一个变量、函数或其他实体的名称**。 例如:上面的代码中s,n,l,f,d是由我们自己命名的一个标识,用于表示一个变量。 关键词:**在语言标准中规定词汇,并且在代码中有特殊意义和用途**。 例如:short,int,long,float,double都是表明变量的类型,它们是由语言标准中提供的词汇。 **标识符必须经过声明或定义才能正常被编译器识别,而关键词可以直接使用。** 因此,要让标识符被编译器看做是一个变量,必须将标识符在使用前声明为一个变量。 接下来我们举几个例子: 正确, 变量使用前被声明了。 ``` // 正确示范,变量使用前被声明了 #include <stdio.h> int main() { int a; printf("%d\n", a); // 正确, 变量使用前被声明了。 return 0; } ``` 错误, 变量a未声明。 ``` // 错误示范,变量a未声明 #include <stdio.h> int main() { printf("%d\n", a); // 错误, 变量未声明。 return 0; } ``` 错误, 变量a在声明前使用。 ``` // 错误示范,变量a在声明前使用 #include <stdio.h> int main() { printf("%d\n", a); // 错误, 变量在声明前使用。 int a; return 0; } ``` ### 3. 变量名命名规则 #### 声明变量的公式:类型 + 标识符 + 分号 既然变量名是一个标识符,因此变量名必须符合标识符的命名规则。 #### 标识符命名规则:标识符由大小写字母,数字和下划线组成。标识符不能以数字开头,并且必须与现有的关键词不同。 ``` short apple; 正确 int 88fruit; 错误,不能以数字开头 long _pencil; 正确,可以以下换线或字母开头 float love_you; 正确,字母开头,标识符可以使用下划线 double int; 错误,不能与现有关键词相同 ``` ### **4. 变量初始化和赋值** #### 4.1 初始化和赋值 我们思考一下,下面的代码,它的打印出来的数值是多少呢? ``` #include <stdio.h> int main() { int a; printf("%d\n", a); return 0; } ``` 我们发现,它居然报错了!  因为 **变量a** 没有被装入任何确定的值,它就被使用了。现在它的值是一个随机值,这样的随机值会导致 程序产生错误的结果。 因此,在Visual Studio中默认设置下,使用这种变量是无法通过编译的。 我们需要为变量a装入确定的值,可以通过两种方法实现: **1. 变量声明后立刻初始化。 2. 变量先声明,其后再为变量赋值。** 写法1:变量声明后,立刻初始化。 ``` #include <stdio.h> int main() { int a = 100; // 变量声明后,立即装入100。 printf("%d\n", a); return 0; } ``` 写法2:变量声明后,不初始化。后续使用赋值运算符赋值。 ``` #include <stdio.h> int main() { int a; // 变量声明后,为一个随机值 a = 100; // 这里我们使用赋值运算符,将100给了a。 printf("%d\n", a); return 0; } ``` ### 4.2 初始化和赋值的区别 赋值: ``` a = 100; ``` 赋值运算符左边为已经声明过的变量,右边为数值。这种写法为给变量赋值。 初始化: ``` int a = 100; ``` 赋值运算符左边为一个**变量声明**,右边为数值,这种写法为**变量声明并初始化**。 你可以用赋值运算符左边的不同来区分赋值与初始化。 另外,**变量可以多次赋值,但是不能被多次初始化**。 多次初始化的写法相当于将 变量a 声明了两次,在第二次声明 变量a 时,编译器发现标识符a已经被使用过了,便会报告一个编译错误。 ``` // 正确,将输出100,200。 #include <stdio.h> int main() { int a; a = 100; printf("%d\n", a); a = 200; printf("%d\n", a); return 0; } ``` ``` // 错误,变量a被重复声明。 #include <stdio.h> int main() { int a; a = 100; printf("%d\n", a); int a = 200; printf("%d\n", a); return 0; } ``` 目前看来,初始化好像就是把变量声明和赋值写在一行了,对于整型和浮点变量确实如此。但是,对于后面将见到的其他类型,会略有不同。请区别对待初始化和赋值,这两个概念。 ### 5. 常量 常量是程序中,一开始就被写死在代码中,且不能被改变的量。 #### 5.1 字面常量 例如:100,200,1.3344,"HelloWorld",被称之为**字面常量**。 字面常量不需要声明,并且编译器通过它的写法可以立即判断出它的类型。 ``` 100 = 101; ``` 错误,常量不能被更改 ``` 100 = a; ``` 错误,常量不能被更改 被双引号包裹的称之为**字符串字面常量**。 ``` "HelloWorld" "HelloWorld" = "你好"; ``` 错误,常量不能被更改 ### 5.2 字面常量类型 一个变量的类型在声明的时候被确定。而一个常量的类型,在这个常量写在代码中时也能被确定。 整数字面常量通常是 int 类型的,除非这个整数字面常量数值过大,超过了 int 类型的范围,那么编译器会尝试将它看做 unsigned int 类型。如果更大,那么依次类推为更大范围的整型类型,例如 long , unsigned long , long long , unsigned long long 。  由于,Visual Studio中,int与long的范围一致,因此会跳过long,而尝试使用long long或unsigned long long。带小数的字面常量为 double 类型。 ### 5.3 符号常量 假设我们有一个商品的价格price,目前为3元。现在我们要计算,10件这个商品的价格。 ``` #include <stdio.h> # define PRICE 3 int main() { int num = 10; int total; total = num * PRICE; printf("total:%d", total); return 0; } ``` 我们并没有直接写 num * 3 ,而是定义了一个符号常量 PRICE 。这样做有什么好处呢?比如,我们这个程序很庞大,商品的价格不仅仅被用在 main 函数中,还被用在其他很多函数里面。如果有一天,这个商品的价格改变了。那么我们就需要到每一个使用过的地方进行修改,这样修改起来会非常麻烦。但是,我们把商品的价格定义为符号常量,这样只需要修改这个符号常量所代表的值即可。 定义符号常量的公式: ``` #define 符号常量 值 ```
admin
2025年9月22日 17:39
18
0 条评论
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期