C语言 变量
一个 变量 是一个内存位置的名称,用于存储数据。它的值可以被改变,并且可以被多次重复使用。
它是一种通过符号表示内存位置的方式,以便能够很容易地被识别。
让我们来看一下声明变量的语法:
type variable_list;
变量的示例声明如下所示:
int a;
float b;
char c;
在这里,a,b,c是变量。int,float和char是数据类型。
我们还可以在声明变量时提供值,如下所示:
int a = 10,b = 20; //声明两个整数类型的变量
float f = 20.8;
char c = 'A';
变量定义规则
- 变量可以包含字母、数字和下划线。
- 变量名只能以字母和下划线开头,不能以数字开头。
- 变量名中不允许有空格。
- 变量名不能是任何保留字或关键字,例如int、float等。
有效的变量名:
int a;
int _ab;
int a30;
无效的变量名:
int 2;
int a b;
int long;
变量类型
C语言中有许多种类型的变量:
- 局部变量
- 全局变量
- 静态变量
- 自动变量
- 外部变量
局部变量
在函数或块中声明的变量称为局部变量。
它必须在块的开头声明。
void function1(){
int x=10;//局部变量
}
必须在使用局部变量之前对其进行初始化。
全局变量
在函数或块外部声明的变量称为全局变量。任何函数都可以更改全局变量的值。它对所有函数都是可用的。
必须在块的开头声明它。
int value = 20; //全局变量
void function1(){
int x = 10; //局部变量
}
静态变量
使用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等。
自动变量
在C语言中,所有在块内声明的变量都是默认的自动变量。我们可以使用 auto关键字 来明确声明一个自动变量。
void main(){
int x=10;//本地变量(也是自动变量)
auto int y=20;//自动变量
}
外部变量
我们可以使用外部变量在多个C源文件中共享一个变量。要声明一个外部变量,您需要使用 extern关键字 。
myfile.h
extern int x=10;//外部变量(也是全局变量)
program1.c
#include "myfile.h"
#include <stdio.h>
void printValue(){
printf("全局变量: %d", global_variable);
}