• 正文
  • 推薦器件
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

C語(yǔ)言速查手冊(cè):變量(Variables)

2024/04/28
1964
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

變量在程序運(yùn)行時(shí)值可以改變,其功能是存儲(chǔ)數(shù)據(jù),變量的類(lèi)型決定了變量在內(nèi)存中的大小。在C語(yǔ)言中,變量名作為標(biāo)識(shí)符的一種,命名原則都和標(biāo)識(shí)符是一樣的;即變量由字母、數(shù)字和下劃線組成且不能以數(shù)字開(kāi)頭大小寫(xiě)敏感。

變量的類(lèi)型也就是數(shù)據(jù)的類(lèi)型(在數(shù)據(jù)類(lèi)型章節(jié)已描述)比如,char、int、long、float、double等基本類(lèi)型;當(dāng)然也可以是枚舉、結(jié)構(gòu)體、共用體、空類(lèi)型、以及指針類(lèi)型等,后續(xù)的章節(jié)會(huì)詳細(xì)說(shuō)明到這幾種類(lèi)型。

那么在C語(yǔ)言中如何定義一個(gè)變量呢?可以參考下面的格式定義變量,type表示被定義的變量類(lèi)型,variables_list是被定義變量列表,列表中的各個(gè)變量用“,”分開(kāi),在C語(yǔ)言中,語(yǔ)句都是以“;”作為語(yǔ)句結(jié)束。

type variables_list;

例如:

//定義兩個(gè)整型變量a和b
int a,b;

//定義兩個(gè)單精度浮點(diǎn)型變量f1和f2
float f1, f2;

//定義兩個(gè)雙精度浮點(diǎn)型變量num1和num2
double num1, num2;

當(dāng)然在定義變量語(yǔ)句時(shí),同時(shí)也可以對(duì)所定義的變量賦初始值。

//定義兩個(gè)整型變量a和b, 初始值分別為1和2
int a=1, b=2;

//定義兩個(gè)單精度浮點(diǎn)型變量f1和f2, 初始值分別為1.1和2.2
float f1=1.1, f2=2.2;

//定義了兩個(gè)雙精度浮點(diǎn)型變量num1和num2,初始值分別為=1.111和2.222
double num1=1.111, num2=2.222;

在工程中需要格外注意的一點(diǎn),對(duì)新定義的變量在使用前一定要進(jìn)行初始化,給新定義一個(gè)合理的初始值,這個(gè)尤為關(guān)鍵。否則,可能會(huì)造成相當(dāng)嚴(yán)重的系統(tǒng)bug。

在C語(yǔ)言中,有以下幾種類(lèi)型的變量:

  • 局部變量(local variable):在函數(shù)或語(yǔ)句塊中聲明的變量,,局部變量必須在語(yǔ)句塊的開(kāi)頭聲明。
  • 全局變量(global variable):在函數(shù)或語(yǔ)句塊之外聲明的變量,它對(duì)文件中的任何函數(shù)有效,但也需要在開(kāi)頭對(duì)其聲明。
  • 靜態(tài)變量(static variable):使用static關(guān)鍵字聲明的變量,多次函數(shù)調(diào)用時(shí)會(huì)保留其值。
  • 自動(dòng)變量(automatic variable):默認(rèn)情況在語(yǔ)句塊聲明的所有變量都是自動(dòng)變量,我們可以使用auto關(guān)鍵字聲明自動(dòng)變量。
  • 外部變量(external variable):在多個(gè)源文件中可以使用外部變量共享一個(gè)變量,在需要使用這個(gè)“共享變量”的源文件里我們可以使用extern來(lái)聲明外部變量。外部變量通常也是全局變量。

//file1.c
int e = 10;
//file2.c
int a = 1; //全局變量
extern int e; //外部變量

int function()
{
int b = 2; //局部變量
static int c = 3; //靜態(tài)變量
auto d = 0; //自動(dòng)變量
}

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
FTLF8528P3BCV 1 Finisar Corporation Transceiver, 840nm Min, 860nm Max, 8500Mbps(Tx), 8500Mbps(Rx), LC Connector, Panel Mount, ROHS COMPLIANT, PACKAGE-20
$296.52 查看
HFBR-5963ALZ 1 Foxconn Transceiver, 1270nm Min, 1380nm Max, LC Connector, Surface Mount, ROHS COMPLIANT, PLASTIC
$71.78 查看
NX3225SA-16.000M-STD-CRS-2 1 Nihon Dempa Kogyo Co Ltd Parallel - Fundamental Quartz Crystal, 16MHz Nom,
暫無(wú)數(shù)據(jù) 查看

相關(guān)推薦