前言
一、人物簡介
- 第一位閃亮登場,有請今后會一直教我們C語言的老師 —— 自在。
- 第二位上場的是和我們一起學習的小白程序猿 —— 逍遙。
二、基本數據類型
1、整型
C語言中的整型數據如下表所示:
數據類型 | 含義 | 長度(字節) | 取值范圍(有符號) | 取值范圍(無符號) |
---|---|---|---|---|
short | 短整型 | 2 | [ - , -1 ] | [ 0 , -1 ] |
int | 整型 | 4 | [ - , -1 ] | [ 0 , -1 ] |
long | 長整型 | 4或8 | ||
long long | 長長整型 | 8 | [ - , -1 ] | [ 0 , -1 ] |
- 整型數據可以是有符號的,也可以是無符號的。
- 有符號的整型可以表示負數和正數,而無符號的整型只能表示非負整數。
2、浮點型
浮點型用于表示實數,它分為單精度浮點型(float)和雙精度浮點型(double)。單精度浮點型占用4個字節,雙精度浮點型占用8個字節。它們的取值范圍和精度如下表所示:
數據類型 | 長度(字節) | 取值范圍 | 精度 |
---|---|---|---|
float | 4 | 1.2E-38 ~ 3.4E38 | 約6位小數 |
double | 8 | 2.2E-308 ~ 1.8E308(15位有效數字) | 約15位小數 |
浮點型數據在計算機內部以二進制形式存儲,因此可能會存在精度問題。在進行浮點型數據的比較時,應該使用適當的誤差范圍進行比較。
3、字符型
字符型用于表示單個字符,它占用1個字節。
數據類型 | 含義 | 長度(字節) | 取值范圍(有符號) | 取值范圍(無符號) |
---|---|---|---|---|
char | 字符型 | 1 | [ - , -1 ] | [ 0 ,-1 ] |
字符型數據可以作為單個字符使用,也可以作為整型數據使用,表示該字符在ASCII碼表中的對應數值。
4、布爾型
布爾型(bool)用于表示真假值,它只有兩個取值:true和false。
在C語言中,布爾型數據被定義為一個整型數據類型,0表示false,非0表示true。
三、變量
1、變量的定義和聲明
在C語言中,變量必須先被定義或聲明才能使用。定義一個變量意味著為它分配內存,聲明一個變量意味著告訴編譯器這個變量的類型和名稱。
- 變量的定義格式如下:
type variable_name;
其中,type是變量的數據類型,variable_name是變量的名稱。例如:
int apple;
short i = 5;
float voltage;
- 變量的聲明有兩種情況:
一種是需要建立存儲空間的。例如:int apple 在聲明的時候就已經建立了存儲空間。
另一種是不需要建立存儲空間的,通過使用extern關鍵字聲明變量名而不定義它。例如:extern int apple, 其中變量 apple 可以在別的文件中定義。
extern int apple; //聲明,不是定義
int students; //聲明,也是定義
一般來講,除非有extern關鍵字,否則都是變量的定義
2、變量類型
在C語言中,變量的類型指的是變量所存儲的數據類型。我們前面介紹的基本數據類型,都可以作為變量的類型。
- int:整型,用于存儲整數。
- long: 長整型,用于存儲更大的整數。
- float:單精度浮點型,用于存儲浮點數。
- double:雙精度浮點型,用于存儲更大的浮點數。
- char:字符型,用于存儲字符。
- bool:布爾型,用于存儲布爾值。
C語言還提供了一些復合數據類型,如結構體、聯合體和枚舉等,這些符合數據類型,我們在以后的文章中再介紹。
3、變量命名規則
- 變量名可以由字母、數字和下劃線組成,但必須以字母或下劃線開頭。
- 變量名不能使用關鍵字作為名稱,變量名的長度沒有限制,但建議使用有意義的名稱。
正確的變量命名
int _gCount = 1;
int m_Age = 18;
long time2 = 20;
錯誤的變量命名
int 1round = 0; //不能以數字開頭
int case = 1; //不能以關鍵字作為變量名
int %age = 16; //不能用標點符號
int name age = 18; //不能用空格
4、變量的初始化和賦值
- 在C語言中,可以使用賦值運算符(=)將一個值賦給一個變量。
例如,下面的代碼將值20賦給變量num:
int num;
num = 20;
- 變量的初始化是指在聲明變量時將其賦初值。
例如,下面的代碼聲明并初始化了一個名為num的整數變量:
int num = 10;
5、變量作用域
在C語言中,變量的作用域指的是變量在程序中可見的范圍。變量可以在函數內部或外部定義。
- 在函數內部定義的變量稱為局部變量,只在該函數中可見。
#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;
}
- 在函數外部定義的變量稱為全局變量,可以在整個程序中使用。
#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;
}
6、變量存儲類型
在C語言中,變量的存儲類型指的是變量所存儲的位置。C語言中的存儲類型包括自動、靜態、寄存器和外部等。
- 自動變量:自動變量在函數內部聲明,在函數執行時被創建,在函數結束時被銷毀。
- 靜態變量:靜態變量在函數內部或函數外部聲明,它們在程序開始執行時被創建,在程序結束時被銷毀。
- 寄存器變量:寄存器變量是指被存儲在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;
}
靜態變量默認存儲類別為static,在程序執行期間始終存在,它的值在函數調用之間保持不變。例如,下面的代碼定義了一個靜態變量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.c
int 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語言中,常量可以是整數、浮點數、字符或字符串。
1、 整數常量
整數常量是指不帶小數部分的數字。在C語言中,整數常量可以用十六進制、八進制或十進制表示。下表列出了不同進制下整數常量的表示方法:
進制 | 格式 | 示例 |
---|---|---|
十進制 | 直接寫數字 | 10, 20, 30 |
八進制 | 以0開頭 | 012, 034, 076 |
十六進制 | 以0x或0X開頭 | 0x10, 0x1E, 0xFF |
例如,下面的代碼定義了三個整數常量:
#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;
}
輸出結果為:decimal_num = 10, octal_num = 10, hex_num = 255。
2、 浮點數常量
浮點數常量是指帶有小數部分的數字。在C語言中,浮點數常量可以用小數點表示,也可以用科學計數法表示。例如,下面的代碼定義了兩個浮點數常量:
#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;
}
輸出結果為:float_num = 1.230000, double_num = 0.000012。
3、 字符常量
字符常量是指用單引號括起來的單個字符。例如,下面的代碼定義了兩個字符常量:
#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;
}
4、 字符串常量
字符串常量是指用雙引號括起來的多個字符。在C語言中,字符串常量實際上是一個字符數組,以空字符('?')結尾。例如,下面的代碼定義了一個字符串常量:
#include < stdio.h >
int main() {
char str[] = "Hello, world!";
printf("%sn", str);
return 0;
}
輸出結果為:Hello, world!。
小結
通過這篇文章,我們已經學會了C語言中基本的數據類型、變量和常量的使用。繼續加油,你會成為C語言大佬的!
評論