C語言中的整型數(shù)據(jù)如下表所示:
數(shù)據(jù)類型 | 含義 | 長度(字節(jié)) | 取值范圍(有符號) | 取值范圍(無符號) |
---|---|---|---|---|
short | 短整型 | 2 | [ - , -1 ] | [ 0 , -1 ] |
int | 整型 | 4 | [ - , -1 ] | [ 0 , -1 ] |
long | 長整型 | 4或8 | ||
long long | 長長整型 | 8 | [ - , -1 ] | [ 0 , -1 ] |
浮點型用于表示實數(shù),它分為單精度浮點型(float)和雙精度浮點型(double)。單精度浮點型占用4個字節(jié),雙精度浮點型占用8個字節(jié)。它們的取值范圍和精度如下表所示:
數(shù)據(jù)類型 | 長度(字節(jié)) | 取值范圍 | 精度 |
---|---|---|---|
float | 4 | 1.2E-38 ~ 3.4E38 | 約6位小數(shù) |
double | 8 | 2.2E-308 ~ 1.8E308(15位有效數(shù)字) | 約15位小數(shù) |
浮點型數(shù)據(jù)在計算機內(nèi)部以二進制形式存儲,因此可能會存在精度問題。在進行浮點型數(shù)據(jù)的比較時,應該使用適當?shù)恼`差范圍進行比較。
(資料圖片僅供參考)
字符型用于表示單個字符,它占用1個字節(jié)。
數(shù)據(jù)類型 | 含義 | 長度(字節(jié)) | 取值范圍(有符號) | 取值范圍(無符號) |
---|---|---|---|---|
char | 字符型 | 1 | [ - , -1 ] | [ 0 ,-1 ] |
字符型數(shù)據(jù)可以作為單個字符使用,也可以作為整型數(shù)據(jù)使用,表示該字符在ASCII碼表中的對應數(shù)值。
布爾型(bool)用于表示真假值,它只有兩個取值:true和false。
在C語言中,布爾型數(shù)據(jù)被定義為一個整型數(shù)據(jù)類型,0表示false,非0表示true。
在C語言中,變量必須先被定義或聲明才能使用。定義一個變量意味著為它分配內(nèi)存,聲明一個變量意味著告訴編譯器這個變量的類型和名稱。
變量的定義格式如下:type variable_name;
其中,type是變量的數(shù)據(jù)類型,variable_name是變量的名稱。例如:
int apple;short i = 5;float voltage;
變量的聲明有兩種情況:一種是需要建立存儲空間的。例如:int apple 在聲明的時候就已經(jīng)建立了存儲空間。
另一種是不需要建立存儲空間的,通過使用extern關鍵字聲明變量名而不定義它。例如:extern int apple, 其中變量 apple 可以在別的文件中定義。
extern int apple; //聲明,不是定義int students; //聲明,也是定義
一般來講,除非有extern關鍵字,否則都是變量的定義
在C語言中,變量的類型指的是變量所存儲的數(shù)據(jù)類型。我們前面介紹的基本數(shù)據(jù)類型,都可以作為變量的類型。
int:整型,用于存儲整數(shù)。long: 長整型,用于存儲更大的整數(shù)。float:單精度浮點型,用于存儲浮點數(shù)。double:雙精度浮點型,用于存儲更大的浮點數(shù)。char:字符型,用于存儲字符。bool:布爾型,用于存儲布爾值。C語言還提供了一些復合數(shù)據(jù)類型,如結(jié)構(gòu)體、聯(lián)合體和枚舉等,這些符合數(shù)據(jù)類型,我們在以后的文章中再介紹。
正確的變量命名
int _gCount = 1;int m_Age = 18;long time2 = 20;
錯誤的變量命名
int 1round = 0; //不能以數(shù)字開頭int case = 1; //不能以關鍵字作為變量名int %age = 16; //不能用標點符號int name age = 18; //不能用空格
例如,下面的代碼將值20賦給變量num:
int num;num = 20;
變量的初始化是指在聲明變量時將其賦初值。例如,下面的代碼聲明并初始化了一個名為num的整數(shù)變量:
int num = 10;
在C語言中,變量的作用域指的是變量在程序中可見的范圍。變量可以在函數(shù)內(nèi)部或外部定義。
在函數(shù)內(nèi)部定義的變量稱為局部變量,只在該函數(shù)中可見。#include < stdio.h > void print_local_num() { int local_num = 20; // 局部變量 printf("local_num = %dn", local_num); } int main() { print_local_num(); // 輸出 local_num = 20 return 0; }
在函數(shù)外部定義的變量稱為全局變量,可以在整個程序中使用。#include < stdio.h >int global_num = 10; // 全局變量void print_global_num() { printf("global_num = %dn", global_num);}int main() { print_global_num(); // 輸出 global_num = 10 return 0;}
在C語言中,變量的存儲類型指的是變量所存儲的位置。C語言中的存儲類型包括自動、靜態(tài)、寄存器和外部等。
自動變量:自動變量在函數(shù)內(nèi)部聲明,在函數(shù)執(zhí)行時被創(chuàng)建,在函數(shù)結(jié)束時被銷毀。靜態(tài)變量:靜態(tài)變量在函數(shù)內(nèi)部或函數(shù)外部聲明,它們在程序開始執(zhí)行時被創(chuàng)建,在程序結(jié)束時被銷毀。寄存器變量:寄存器變量是指被存儲在CPU寄存器中的變量,它們通常用于在計算密集型的代碼中提高性能。外部變量:外部變量是在程序文件外部聲明的全局變量,可以被程序的所有文件訪問。自動變量的默認存儲類別為auto。例如,下面的代碼定義了一個自動變量num:
#include < stdio.h >void print_num() { auto int num = 30; printf("num = %dn", num);}int main() { print_num(); // 輸出 num = 30 return 0;}
靜態(tài)變量默認存儲類別為static,在程序執(zhí)行期間始終存在,它的值在函數(shù)調(diào)用之間保持不變。例如,下面的代碼定義了一個靜態(tài)變量static_num:
#include < stdio.h >void print_static_num() { static int static_num = 40; printf("static_num = %dn", static_num); static_num++;}int main() { print_static_num(); // 輸出 static_num = 40 print_static_num(); // 輸出 static_num = 41 print_static_num(); // 輸出 static_num = 42 return 0;}
寄存器變量的默認存儲類別為register。例如,下面的代碼定義了一個寄存器變量reg_num:
#include < stdio.h >void print_reg_num() { register int reg_num = 50; printf("reg_num = %dn", reg_num);}int main() { print_reg_num(); // 輸出 reg_num = 50 return 0;}
外部變量的默認存儲類別為extern。例如,下面的代碼定義了一個外部變量extern_num,并在另一個文件中訪問它:
// other_file.cint extern_num = 60;// main.c#include < stdio.h >extern int extern_num;void print_extern_num() { printf("extern_num = %dn", extern_num);}int main() { print_extern_num(); // 輸出 extern_num = 60 return 0;}
在C語言中,常量可以是整數(shù)、浮點數(shù)、字符或字符串。
整數(shù)常量是指不帶小數(shù)部分的數(shù)字。在C語言中,整數(shù)常量可以用十六進制、八進制或十進制表示。下表列出了不同進制下整數(shù)常量的表示方法:
進制 | 格式 | 示例 |
---|---|---|
十進制 | 直接寫數(shù)字 | 10, 20, 30 |
八進制 | 以0開頭 | 012, 034, 076 |
十六進制 | 以0x或0X開頭 | 0x10, 0x1E, 0xFF |
例如,下面的代碼定義了三個整數(shù)常量:
#include < stdio.h >int main() { int decimal_num = 10; int octal_num = 012; int hex_num = 0xFF; printf("decimal_num = %d, octal_num = %d, hex_num = %dn", decimal_num, octal_num, hex_num); return 0;}
輸出結(jié)果為:decimal_num = 10, octal_num = 10, hex_num = 255。
浮點數(shù)常量是指帶有小數(shù)部分的數(shù)字。在C語言中,浮點數(shù)常量可以用小數(shù)點表示,也可以用科學計數(shù)法表示。例如,下面的代碼定義了兩個浮點數(shù)常量:
#include < stdio.h >int main() { float float_num = 1.23; double double_num = 1.23e-5; printf("float_num = %f, double_num = %fn", float_num, double_num); return 0;}
輸出結(jié)果為:float_num = 1.230000, double_num = 0.000012。
字符常量是指用單引號括起來的單個字符。例如,下面的代碼定義了兩個字符常量:
#include < stdio.h >int main() { char char_a = "A"; char char_b = "B"; printf("char_a = %c, char_b = %cn", char_a, char_b); return 0;}
字符串常量是指用雙引號括起來的多個字符。在C語言中,字符串常量實際上是一個字符數(shù)組,以空字符("?")結(jié)尾。例如,下面的代碼定義了一個字符串常量:
#include < stdio.h >int main() { char str[] = "Hello, world!"; printf("%sn", str); return 0;}
輸出結(jié)果為:Hello, world!。
通過這篇文章,我們已經(jīng)學會了C語言中基本的數(shù)據(jù)類型、變量和常量的使用。繼續(xù)加油,你會成為C語言大佬的!
標簽: