C語言再學習之 資料型別整理

2021-08-09 04:18:58 字數 3135 閱讀 8130

c 語言包含的資料型別如下圖所示:

一、資料型別與「模子」

short、int、long、char、float、double 這六個關鍵字代表c 語言裡的六種基本資料型別。

怎麼去理解它們呢? 舉個例子:見過藕煤球的那個東西吧?(沒見過?煤球總見過吧)。那個東西叫藕煤器,拿著它在和好的煤堆裡這麼一咔,乙個煤球出來了。半徑12cm,12 個孔。不同型號的藕煤器咔出來的煤球大小不一樣,孔數也不一樣。這個藕煤器其實就是個模子。

現在我們聯想一下,short、int、long、char、float、double 這六個東東是不是很像不同型別的藕煤器啊?拿著它們在記憶體上咔咔咔,不同大小的記憶體就分配好了,當然別忘了給它們取個好聽的名字。

在32 位的系統上short 咔出來的記憶體大小是2 個byte;

int 咔出來的記憶體大小是4 個byte;

long 咔出來的記憶體大小是4 個byte;

float 咔出來的記憶體大小是4 個byte;

double 咔出來的記憶體大小是8 個byte;

char 咔出來的記憶體大小是1 個byte。

(注意這裡指一般情況,可能不同的平台還會有所不同,具體平台可以用sizeof 關鍵字測試一下)

很簡單吧?咔咔咔很爽吧?是很簡單,也確實很爽,但問題就是你咔出來這麼多記憶體塊,你總不能給他取名字叫做x1,x2,x3,x4,x5…或者長江1 號,長江2 號…吧。它們長得這麼像(不是你家的老大,老二,老三…),過一陣子你就會忘了到底哪個名字和哪個記憶體塊匹配了(到底誰嫁給誰了啊?^_^)。所以呢,給他們取乙個好的名字絕對重要。下面我們就來研究研究取什麼樣的名字好。

二、變數的命名規則

1、命名應當直觀且可以拼讀,可望文知意,便於記憶和閱讀。

識別符號最好採用英文單詞或其組合,不允許使用拼音。程式中的英文單詞一般不要太複雜,用詞應當準確。

2、命名的長度應當符合「min-length && max-information」原則。

c 是一種簡潔的語言, 命名也應該是簡潔的。例如變數名maxval 就比maxvalueuntiloverflow 好用。識別符號的長度一般不要過長,較長的單詞可通過去掉「母音」形成縮寫。

另外,英文詞盡量不縮寫,特別是非常用專業名詞,如果有縮寫,在同一系統中對同一單詞必須使用相同的表示法,並且註明其意思。

3、當識別符號由多個詞組成時,每個詞的第乙個字母大寫,其餘全部小寫。

比如:int currentval;

這樣的名字看起來比較清晰,遠比一長串字元好得多。

4、盡量避免名字中出現數字編號,如value1,value2 等,除非邏輯上的確需要編號。

比如驅動開發時為管腳命名,非編號名字反而不好。

初學者總是喜歡用帶編號的變數名或函式名,這樣子看上去很簡單方便,但其實是一顆顆定時炸彈。這個習慣初學者一定要改過來。

5、對在多個檔案之間共同使用的全域性變數或函式要加範圍限定符(建議使用模組名(縮寫)作為範圍限定符)。

(gui_ ,etc)識別符號的命名規則:

6、識別符號名分為兩部分:規範識別符號字首(字尾) + 含義標識。非全域性變數可以不用使用範圍限定符字首。

7、作用域字首命名規則。

8、資料型別字首命名規則。

9、含義標識命名規則,變數命名使用名詞性片語,函式命名使用動詞性片語。

例如:

變數含義識別符號構成:目標詞+ 動詞(的過去分詞)+ [狀語] + [目的地];

函式含義識別符號構成:動詞(一般現時)+目標詞+[狀語]+[目的地];

10、程式中不得出現僅靠大小寫區分的相似的識別符號。

例如:int x, x; 變數x 與x 容易混淆

void foo(int x); 函式foo 與foo 容易混淆

void foo(float x);

這裡還有乙個要特別注意的就是1(數字1)和l(小寫字母l)之間,0(數字0)和o(小寫字母o)之間的區別。這兩對真是很難區分的,我曾經的乙個同事就被這個問題折騰了一次。

11、乙個函式名禁止被用於其它之處。

例如:#include "c_standards.h"

void foo(int p_1)

void static_p(void)

12、所有巨集定義、列舉常數、唯讀變數全用大寫字母命名,用下劃線分割單詞。

例如:const int max_length = 100; //這不是常量,而是乙個唯讀變數,具體請往後看

#define file_path 「/usr/tmp」

13、考慮到習慣性問題,區域性變數中可採用通用的命名方式,僅限於n、i、j 等作為迴圈變數使用。

一定不要寫出如下這樣的**:

int p;

char i;

int c;

char * a;

一般來說習慣上用n,m,i,j,k 等表示int 型別的變數;c,ch 等表示字元型別變數;a 等表示陣列;p 等表示指標。當然這僅僅是一般習慣,除了i,j,k 等可以用來表示迴圈變數外,別的字元變數名盡量不要使用。

14、定義變數的同時千萬千萬別忘了初始化。定義變數時編譯器並不一定清空了這塊記憶體,它的值可能是無效的資料。

這個問題在記憶體管理那章有非常詳細的討論,請參看。

15、不同型別資料之間的運算要注意精度擴充套件問題,一般低精度資料將向高精度資料擴充套件。

C 學習之 資料型別

內容摘自書籍 c 程式設計.慕課版 型別 1.整型型別 整型型別代表一種沒有小數點的整數數值。2.浮點型別 浮點型別主要用於處理含有小數的數值型別,包含 float double和decimal三種型別。如果不做任何設定,包含小數點的數值都被認為是double型別。3.布林型別 布林型別主要用來表示...

C語言再學習3 基本資料型別 變數的命名規則

基本型別 short,int,long,char,float,double 這六個關鍵字是 c 語言裡 6 種基本資料型別。一般情況下,不同的資料型別占用的記憶體情況如下表 針對 32 系統,不同的平台還需具體測試一下 使用 sizeof測試 資料型別 占用記憶體大小 short 2 byte in...

C語言基礎之資料型別

char佔8位記憶體 8個bit 即1個位元組 byte short佔16位記憶體 16個bit 即2個位元組 byte int佔32位記憶體 32個bit 即4個位元組 byte long佔32位到64位記憶體 32個bit到64bit 即4個位元組到8個位元組 byte long long佔64...