C 变量
变量其实只不过是程序可操作的存储区的名称。C 中每个变量都有特定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上。
变量的名称可以由字母、数字和下划线字符组成。它必须以字母或下划线开头。大写字母和小写字母是不同的,因为 C 是大小写敏感的。基于前一章讲解的基本类型,有以下几种基本的变量类型:
C 语言也允许定义各种其他类型的变量,比如枚举、指针、数组、结构、共用体等等,这将会在后续的章节中进行讲解,本章节我们先讲解基本变量类型。
定义变量的规则
- 一个变量名称可以有字母,数字和下划线。
- 变量名称只能以字母和下划线开头,但是它不能以数字开始。
- 变量名称内不允许有空格。
- 变量名称不能是任何保留字或关键字,例如:int,float等
有效的变量名:
int a;
int _ab;
int a30;
无效的变量名:
int 2;
int a b;
int long;
C语言的变量类型
C语言中有很多变量类型:
- 局部变量
- 全局变量
- 静态变量
- 自动变量
- 外部变量
1.局部变量
在函数或块中声明的变量称为局部变量。它必须在块的开始处声明。
void function1(){
int x=10;//local variable
}
在使用局部变量之前必须要初始化它。
2.全局变量
在函数或块之外声明的变量称为全局变量。任何函数都可以改变全局变量的值。它可用于所有函数。它必须在块的开始处声明。
int value=20;// 全局变量
void function1(){
int x=10;// 局部变量
}
3.静态变量
用static关键字声明的变量称为静态变量。它在多个函数调用之间保留其值。
void function1(){
int x = 10; // 局部变量
static int y = 10; // 静态变量
x = x + 1;
y = y + 1;
printf("%d,%d", x, y);
}
如果多次调用此函数,局部变量在每次函数调用打印相同的值,例如:11,11,11等等。 但静态变量将打印每个函数调用中递增的值。例如:11,12,13等。
4.自动变量
默认情况下,在块内声明的C语言中的所有变量都是自动变量。通过我们可以使用auto关键字显式声明自动变量。
void main(){
int x=10;//local variable (also automatic)
auto int y=20;//automatic variable
}
5.外部变量
我们可以通过使用外部变量来共享多个C源文件中的变量。 要声明一个外部变量,需要使用extern关键字。
源文件:myfile.h 代码如下 -
extern int x = 10; // 外部变量 (也可叫全局变量)
源文件:program1.c 代码如下 -
#include "myfile.h"
#include <stdio.h>
void printValue(){
printf("Global variable: %d", global_variable);
}