變量是內(nèi)存位置的名稱。它用于存儲數(shù)據(jù)。其值可以更改,可以重復(fù)使用多次。
它是通過符號表示內(nèi)存位置的方法,以便可以容易識別。
我們來看一下聲明一個變量的語法:
type variable_list;
聲明變量的例子如下:
int a;
float b;
char c;
這里,a
,b
,c
是變量,它們分別對應(yīng):int
,float
,char
是數(shù)據(jù)類型。
我們還可以在聲明變量時提供值,如下所示:
int a=10,b=20; // 同時聲明兩個整數(shù)類型的變量,并為它們分別賦值
float f=20.8;
char c='A';
定義變量的規(guī)則
int
,float
等有效的變量名:
int a;
int _ab;
int a30;
無效的變量名:
int 2;
int a b;
int long;
C語言中有很多變量類型:
在函數(shù)或塊中聲明的變量稱為局部變量。它必須在塊的開始處聲明。
void function1(){
int x=10;//local variable
}
在使用局部變量之前必須要初始化它。
在函數(shù)或塊之外聲明的變量稱為全局變量。任何函數(shù)都可以改變?nèi)肿兞康闹?。它可用于所有函?shù)。它必須在塊的開始處聲明。
int value=20;// 全局變量
void function1(){
int x=10;// 局部變量
}
用static
關(guān)鍵字聲明的變量稱為靜態(tài)變量。它在多個函數(shù)調(diào)用之間保留其值。
void function1(){
int x = 10; // 局部變量
static int y = 10; // 靜態(tài)變量
x = x + 1;
y = y + 1;
printf("%d,%d", x, y);
}
如果多次調(diào)用此函數(shù),局部變量在每次函數(shù)調(diào)用打印相同的值,例如:11
,11
,11
等等。 但靜態(tài)變量將打印每個函數(shù)調(diào)用中遞增的值。例如:11
,12
,13
等。
默認(rèn)情況下,在塊內(nèi)聲明的C語言中的所有變量都是自動變量。通過我們可以使用auto
關(guān)鍵字顯式聲明自動變量。
void main(){
int x=10;//local variable (also automatic)
auto int y=20;//automatic variable
}
我們可以通過使用外部變量來共享多個C源文件中的變量。 要聲明一個外部變量,需要使用extern
關(guān)鍵字。
源文件:myfile.h 代碼如下 -
extern int x = 10; // 外部變量 (也可叫全局變量)
源文件:program1.c 代碼如下 -
#include "myfile.h"
#include <stdio.h>
void printValue(){
printf("Global variable: %d", global_variable);
}