编程语言
654
1.什么是变量
变量是程序可操作的存储区的
名称
每个变量都有特定的类型
,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中 变量的名称可以由字母、数字和下划线字符组成
。它必须以字母或下划线开头。 大写字母和小写字母是不同的,因为 C 是大小写敏感
的
2. 变量如何定义
int x = 10; // 整型变量 x 初始化为 10 float pi = 3.14; // 浮点型变量 pi 初始化为 3.14 char ch = 'A'; // 字符型变量 ch 初始化为字符 'A' int d = 3, f = 5; // 定义并初始化 d 和 f byte z = 22; // 定义并初始化 z // 声明外部变量 extern int d; extern int f;
也可以对定义的变量进行初始化
int x; // 整型变量x定义 x = 20; // 变量x初始化为20 float pi; // 浮点型变量pi定义 pi = 3.14159; // 变量pi初始化为3.14159 char ch; // 字符型变量ch定义 ch = 'B'; // 变量ch初始化为字符'B'
3. 对于不初始化变量的理解
如果变量没有显式初始化,那么它的默认值将取决于该变量的类型
和其所在的作用域
。
对于全局变量
和静态变量
(在函数内部定义的静态变量和在函数外部定义的全局变量), 它们的默认初始值为零
。
- 整型变量(int、short、long等):默认值为0。
- 浮点型变量(float、double等):默认值为0.0。
- 字符型变量(char):默认值为
'\0'
,即空字符
。 - 指针变量:默认值为
NULL
,表示指针不指向任何有效的内存地址。 - 数组、结构体、联合等复合类型的变量:它们的元素或成员将按照相应的规则进行默认初始化,这可能包括对元素递归应用默认规则。
需要注意的是,局部变量(在函数内部定义的非静态变量)不会自动
初始化为默认值,它们的初始值是未定义
的(包含垃圾值), 因此,在使用局部变量之前,应该显式地为其赋予一个初始值。
4. 变量声明
变量声明向编译器保证变量以指定的类型和名称存在,这样编译器在不需要知道变量完整细节的情况下也能继续进一步的编译。变量声明只在编译时
有它的意义,在程序连接时编译器需要实际的变量声明。
变量的声明有两种情况:
- 需要建立存储空间的。例如:
int a
在声明时
就已经建立了存储空间。 - 不需要建立存储空间的,通过使用
extern
关键字声明变量名而不定义它。 例如:extern int a 其中变量 a 可以在别的文件中定义的。
除非有 extern 关键字,否则都是变量的定义, 即
extern int a; //声明,不是定义 int a; //声明,也是定义