C語(yǔ)言大家都不陌生吧,計(jì)算機(jī)、電子信息、通信工程、自動(dòng)化等專業(yè)的必學(xué)課程,前面和大家介紹過(guò)C語(yǔ)言的歷史和編程環(huán)境,今天再來(lái)介紹一下變量和數(shù)據(jù)類型。
C語(yǔ)言是一門靜態(tài)類型的底層編程語(yǔ)言,也就是說(shuō)任何變量都必須有一個(gè)確定的類型,并且該類型在被編譯時(shí)是可知的。因此,在C語(yǔ)言編程時(shí),每創(chuàng)建一個(gè)變量,就必須聲明變量類型。從單片機(jī)編程的角度,聲明一個(gè)變量,其數(shù)據(jù)類型為無(wú)符號(hào)整型uin8_t,名稱為Val_Counter:
uint8_t Val_Counter; //數(shù)據(jù)類型為無(wú)符號(hào)整型,名稱為Val_Counter;
變量聲明
1.變量的命名規(guī)范
所謂,無(wú)規(guī)矩不成方圓,變量的名字可以任意取,但是要遵循一定的命名規(guī)范,變量名可以包含任意的字母,但是區(qū)分大小寫(xiě),也可以包含數(shù)字和下劃線,但是不能以數(shù)字作為開(kāi)頭。
uint8_t val_counter; //正確的變量聲明; uint8_t Val_Counter; //正確的變量聲明; uint8_t Val_Counter100;//正確的變量聲明; uint8_t 1Val_Counter; //錯(cuò)誤的變量聲明;
命名規(guī)范舉例
變量的命名雖有規(guī)范,但是取名字也有規(guī)范,要保證的大原則就是:變量名通俗易懂,一看就能知道其含義,避免直接用a,b,c,aa,kk,tt這種無(wú)章法的命名方式。
2.變量的初始化和賦值
變量一旦被合法聲明了,那么就可以在編程時(shí)使用了,可以根據(jù)編程的需要給變量賦值。當(dāng)然,任何變量都有初始值,在聲明變量的時(shí)候可以給變量賦一個(gè)值。被賦的值與進(jìn)制沒(méi)有關(guān)系,可以寫(xiě)十進(jìn)制,也可以寫(xiě)十六進(jìn)制或者是二進(jìn)制。
uint8_t val_counter1 = 10; //初值為10; uint8_t Val_Counter2 = 0x0A; //初值為10;
變量初始化
也可以在程序中賦值,做計(jì)算。
#includeint main(void) { uint_8 Val_Counter1 = 10,Val_Counter2; Val_Counter2 = Val_Counter1 + 2; printf("%d",Val_Counter2); }
變量的應(yīng)用
程序的“=”是賦值操作,更改變量的當(dāng)前值時(shí)可以使用賦值操作,兩邊的數(shù)據(jù)類型要相同,表示把右邊操作數(shù)的值賦給左邊操作數(shù)。“=”是最簡(jiǎn)單的賦值運(yùn)算符,除此之外,還有“-=”、“+=”、“*=”、“/=”、“|=”、“&=”、“%=”、“<<=”、“>>=”等。。。
#includeint main() { uint8_t a = 21,c; c = a; printf("Line 1 - = 運(yùn)算符實(shí)例,c 的值 = %d ", c ); c += a; printf("Line 2 - += 運(yùn)算符實(shí)例,c 的值 = %d ", c ); c -= a; printf("Line 3 - -= 運(yùn)算符實(shí)例,c 的值 = %d ", c ); }
賦值變形運(yùn)算
3.C語(yǔ)言常用的數(shù)據(jù)類型
C語(yǔ)言的變量數(shù)據(jù)類型,大致可以分為如下幾類:
基本數(shù)據(jù)類型,如整型、浮點(diǎn)型、字符型、布爾型等;
衍生數(shù)據(jù)類型,如指針型、數(shù)組型、結(jié)構(gòu)體struct、共用體union等;
枚舉類型enum,適用于枚舉值有限,且變量初值自動(dòng)遞加;
空類型,void,這種容易被忽略,它表示無(wú)類型或者無(wú)返回值的函數(shù);
typedef型,就是定義別名,可以給現(xiàn)有數(shù)據(jù)類型改名字,便于記憶和歸類,和結(jié)構(gòu)體合用比較方便;
常量,用const來(lái)表示;
幾種常見(jiàn)的數(shù)據(jù)類型如int、char、short、long、float、double等。
int,整型,至少占據(jù)2個(gè)字節(jié);
char,字符型,至少占據(jù)1個(gè)字節(jié);
short,短整型,至少占據(jù)2個(gè)字節(jié);
long,長(zhǎng)整型,至少占據(jù)4個(gè)字節(jié);
float,浮點(diǎn)型;
long,雙精度浮點(diǎn)型;
每種數(shù)據(jù)類型,都會(huì)占用不同的數(shù)據(jù)長(zhǎng)度,但是因?yàn)榫幊汰h(huán)境/編譯器的不同,每種類型的長(zhǎng)度也不完全相同。只能說(shuō)short 不會(huì)比 int 長(zhǎng), long 不會(huì)比 int 短。
對(duì)于整型數(shù)據(jù)類型而言,還有無(wú)符號(hào)整型,用unsigned來(lái)表示,變量加了unsigned之后,該變量的取值范圍就從0開(kāi)始、沒(méi)有負(fù)數(shù)了。這在單片機(jī)編程中應(yīng)用廣泛。
unsigned char的范圍從 0 開(kāi)始,至少到 255
unsigned int的范圍從 0 開(kāi)始,至少到 65,535
unsigned short的范圍從 0 開(kāi)始,至少到 65,535
unsigned long的范圍從 0 開(kāi)始,至少到 4,294,967,295
因?yàn)閿?shù)據(jù)類型有長(zhǎng)度,所以在編程的時(shí)候需要注意變量的邊界問(wèn)題,不能讓數(shù)據(jù)溢出。
各種類型的數(shù)據(jù)長(zhǎng)度,其實(shí)是可以根據(jù)自己的編程環(huán)境/編譯器進(jìn)行測(cè)試的,用sizieof()就可以實(shí)現(xiàn)。
#include//計(jì)算數(shù)據(jù)類型的長(zhǎng)度 int main(void) { printf("char size: %lu bytes ", sizeof(char)); printf("int size: %lu bytes ", sizeof(int)); printf("short size: %lu bytes ", sizeof(short)); printf("long size: %lu bytes ", sizeof(long)); printf("float size: %lu bytes ", sizeof(float)); printf("double size: %lu bytes ", sizeof(double)); printf("long double size: %lu bytes ", sizeof(long double)); }
數(shù)據(jù)類型長(zhǎng)度檢測(cè)
用C語(yǔ)言編程時(shí),需要用到各種變量,而變量的命名規(guī)范也能反映出代碼是否通俗易懂。所以,要想提高編程效率,先從變量命名規(guī)范和數(shù)據(jù)類型入手吧。
審核編輯:湯梓紅
-
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7536瀏覽量
88642 -
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7614瀏覽量
137716 -
編程
+關(guān)注
關(guān)注
88文章
3637瀏覽量
93983 -
變量
+關(guān)注
-
數(shù)據(jù)類型
+關(guān)注
關(guān)注
0文章
236瀏覽量
13663
原文標(biāo)題:C語(yǔ)言高效編程第一步,搞定變量和數(shù)據(jù)類型
文章出處:【微信號(hào):玩轉(zhuǎn)嵌入式,微信公眾號(hào):玩轉(zhuǎn)嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
C語(yǔ)言中的基本數(shù)據(jù)類型
![<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>中的基本<b class='flag-5'>數(shù)據(jù)類型</b>](https://file1.elecfans.com/web2/M00/82/4F/wKgaomRI71GAYX3DAABNQ-ZTaOo064.png)
C語(yǔ)言數(shù)據(jù)類型詳解
![<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b><b class='flag-5'>數(shù)據(jù)類型</b><b class='flag-5'>詳解</b>](https://file1.elecfans.com/web2/M00/AC/0A/wKgaomVDGCqARVwHAABRlk-dUg8506.jpg)
技術(shù)干貨驛站 ▏深入理解C語(yǔ)言:基本數(shù)據(jù)類型和變量
![技術(shù)干貨驛站 ▏深入理解<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>:基本<b class='flag-5'>數(shù)據(jù)類型</b>和<b class='flag-5'>變量</b>](https://file1.elecfans.com/web2/M00/FC/CD/wKgZomaWI5uASgBaAABuQHdMO4I302.png)
變量和數(shù)據(jù)類型PPT教程
C語(yǔ)言基本數(shù)據(jù)類型,變量和常量
C預(yù)處理與C語(yǔ)言基本數(shù)據(jù)類型
C語(yǔ)言教程之數(shù)據(jù)類型與運(yùn)算符的詳細(xì)資料說(shuō)明
![<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>教程之<b class='flag-5'>數(shù)據(jù)類型</b>與運(yùn)算符的詳細(xì)資料說(shuō)明](https://file.elecfans.com/web1/M00/86/7C/pIYBAFx5BeeANKGIAABzompBiV8068.png)
重視變量的數(shù)據(jù)類型
![重視<b class='flag-5'>變量</b>的<b class='flag-5'>數(shù)據(jù)類型</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
C語(yǔ)言-基本數(shù)據(jù)類型與位運(yùn)算
C語(yǔ)言的數(shù)據(jù)類型-2
![<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>的<b class='flag-5'>數(shù)據(jù)類型</b>-2](https://file.elecfans.com/web2/M00/92/C6/poYBAGP0ZRyADmSaAAAauKdGrW4934.jpg)
網(wǎng)絡(luò)工程師學(xué)Python之變量和簡(jiǎn)單數(shù)據(jù)類型
ARRAY 數(shù)據(jù)類型的變量
C語(yǔ)言數(shù)據(jù)類型有哪些
![<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b><b class='flag-5'>數(shù)據(jù)類型</b>有哪些](https://file1.elecfans.com/web2/M00/C5/16/wKgZomX6UKqAb6q4AABHS7gAoYk070.png)
評(píng)論