变量(variable)是程序中不可或缺的组成单位,是最基本的存储单元。
1.什么是变量?
Ⅰ.概念:
-
内存中的一个存储区域,该区域的数据可以在同一类型范围内不断变化。
-
通过变量名,可以访问这块内存区域,获取里面存储的值。
-
变量的构成包含三个要素:
数据类型
、变量名
、存储的值
-
C语言中变量声明的格式:
数据类型 变量名 = 变量值
Ⅱ.作用:
用于在内存中保存数据。
Ⅲ.注意:
-
C语言中每个变量必须先声明,后使用。
-
不同的数据类型,占用的空间大小不一样。
-
一旦声明,变量的类型就不能在运行时修改。
2.变量的声明与赋值
Ⅰ.声明
格式:
数据类型 变量名; //声明变量的语句必须以分号结尾
例子:
int width,height;
// 等同于
int width;
int height;
Ⅱ.赋值
变量声明时,就为它分配内存空间,但是不会清除内存里面原来的值。这导致声明变量以后,变量会是一个随机的值。所以,变量一定要赋值以后才能使用。
例子:
先声明再赋值
int var; // 声明变量
var = 3; // 给变量赋值
声明和赋值一起
int var = 3;
多个相同类型变量的赋值
int var1 = 1, int var2 = 2;
连续赋值
int var1, var2, var3;
var1 = var2 = var3 = 999;
printf("%d %d %d", var1, var2, var3); // 输出结果:999 999 999
3.变量的作用域
-
变量的作用域:其定义所在的一对{ }内。
-
变量只有在其
作用域
内才有效。出了作用域,变量不可以再被调用。 -
同一个作用域内,不能定义重名的变量。
-
C 语言的变量作用域主要有两种:文件作用域(file scope)和块作用域(block scope)。
Ⅰ.文件作用域(file scope)
指的是,在源码文件顶层声明的变量,从声明的位置到文件结束都有效。全局变量
int x = 1; // 在main()函数外面定义的全局变量
int main() {
printf("%d\n", x); // 在main()函数里可以调用x变量
return 0;
}
Ⅱ.块作用域(block scope)
指的是由大括号( {} )组成的代码块,它形成一个单独的作用域。凡是在块作用域里面声明的变量,只在当前代码块有效,代码块外部不可见。局部变量
int main() {
int m = 10;
if (m == 10) {
int n = 20;
printf("%d %d\n", m, n); // 10 20
}
printf("%d\n", m); // 10
printf("%d\n", n); // 超出作用域,报错
return 0;
}
4.变量按数据类型分类
变量可以按数据类型
来分,也可以按声明的位置
来分(全局变量、局部变量)。
按照数据类型分为:
注意1:这里列举的是C语言的常用类型,后续C语言版本还有新增的类型。
注意2:空类型:void 表示空类型(无类型)。通常应用于函数的返回值类型、函数的参数、指针类型。
注意3:在C语言中,没有字符串类型
,使用字符数组表示字符串。