前言
一、人物簡介
- 第一位閃亮登場碎税,有請今后會一直教我們C語言的老師 —— 自在尤慰。
- 第二位上場的是和我們一起學(xué)習(xí)的小白程序猿 —— 逍遙。
二雷蹂、基本數(shù)據(jù)類型
1伟端、整型
C語言中的整型數(shù)據(jù)如下表所示:
數(shù)據(jù)類型 | 含義 | 長度(字節(jié)) | 取值范圍(有符號) | 取值范圍(無符號) |
---|---|---|---|---|
short | 短整型 | 2 | [ - |
[ 0 , |
int | 整型 | 4 | [ - |
[ 0 , |
long | 長整型 | 4或8 | ||
long long | 長長整型 | 8 | [ - |
[ 0 , |
整型數(shù)據(jù)可以是有符號的,也可以是無符號的匪煌。
有符號的整型可以表示負(fù)數(shù)和正數(shù)责蝠,而無符號的整型只能表示非負(fù)整數(shù)党巾。
2、浮點(diǎn)型
浮點(diǎn)型用于表示實(shí)數(shù)霜医,它分為單精度浮點(diǎn)型(float)和雙精度浮點(diǎn)型(double)齿拂。單精度浮點(diǎn)型占用4個(gè)字節(jié),雙精度浮點(diǎn)型占用8個(gè)字節(jié)肴敛。它們的取值范圍和精度如下表所示:
數(shù)據(jù)類型 | 長度(字節(jié)) | 取值范圍 | 精度 |
---|---|---|---|
float | 4 | 1.2E-38 ~ 3.4E38 | 約6位小數(shù) |
double | 8 | 2.2E-308 ~ 1.8E308(15位有效數(shù)字) | 約15位小數(shù) |
?? 浮點(diǎn)型數(shù)據(jù)在計(jì)算機(jī)內(nèi)部以二進(jìn)制形式存儲署海,因此可能會存在精度問題。在進(jìn)行浮點(diǎn)型數(shù)據(jù)的比較時(shí)医男,應(yīng)該使用適當(dāng)?shù)恼`差范圍進(jìn)行比較砸狞。
3、字符型
字符型用于表示單個(gè)字符镀梭,它占用1個(gè)字節(jié)睬罗。
數(shù)據(jù)類型 | 含義 | 長度(字節(jié)) | 取值范圍(有符號) | 取值范圍(無符號) |
---|---|---|---|---|
char | 字符型 | 1 | [ - |
[ 0 , |
字符型數(shù)據(jù)可以作為單個(gè)字符使用,也可以作為整型數(shù)據(jù)使用棘幸,表示該字符在ASCII碼表中的對應(yīng)數(shù)值翼闽。
4、布爾型
布爾型(bool)用于表示真假值笙什,它只有兩個(gè)取值:true和false飘哨。
在C語言中,布爾型數(shù)據(jù)被定義為一個(gè)整型數(shù)據(jù)類型琐凭,0表示false芽隆,非0表示true。
三统屈、變量
1胚吁、變量的定義和聲明
在C語言中,變量必須先被定義或聲明才能使用愁憔。定義一個(gè)變量意味著為它分配內(nèi)存腕扶,聲明一個(gè)變量意味著告訴編譯器這個(gè)變量的類型和名稱。
- 變量的定義格式如下:
type variable_name;
其中吨掌,type是變量的數(shù)據(jù)類型半抱,variable_name是變量的名稱。例如:
int apple;
short i = 5;
float voltage;
- 變量的聲明有兩種情況:
1??一種是需要建立存儲空間的膜宋。例如:int apple 在聲明的時(shí)候就已經(jīng)建立了存儲空間窿侈。
2??另一種是不需要建立存儲空間的,通過使用extern關(guān)鍵字聲明變量名而不定義它秋茫。 例如:extern int apple史简, 其中變量 apple 可以在別的文件中定義。
extern int apple; //聲明肛著,不是定義
int students; //聲明圆兵,也是定義
?? 一般來講跺讯,除非有extern關(guān)鍵字,否則都是變量的定義
2衙傀、變量類型
在C語言中抬吟,變量的類型指的是變量所存儲的數(shù)據(jù)類型。我們前面介紹的基本數(shù)據(jù)類型统抬,都可以作為變量的類型火本。
- int:整型,用于存儲整數(shù)聪建。
- long: 長整型钙畔,用于存儲更大的整數(shù)。
- float:單精度浮點(diǎn)型金麸,用于存儲浮點(diǎn)數(shù)擎析。
- double:雙精度浮點(diǎn)型,用于存儲更大的浮點(diǎn)數(shù)挥下。
- char:字符型揍魂,用于存儲字符。
- bool:布爾型棚瘟,用于存儲布爾值现斋。
C語言還提供了一些復(fù)合數(shù)據(jù)類型,如結(jié)構(gòu)體偎蘸、聯(lián)合體和枚舉等庄蹋,這些符合數(shù)據(jù)類型,我們在以后的文章中再介紹迷雪。
3限书、變量命名規(guī)則
變量名可以由字母、數(shù)字和下劃線組成章咧,但必須以字母或下劃線開頭倦西。
變量名不能使用關(guān)鍵字作為名稱,變量名的長度沒有限制赁严,但建議使用有意義的名稱扰柠。
?? 正確的變量命名
int _gCount = 1;
int m_Age = 18;
long time2 = 20;
? 錯(cuò)誤的變量命名
int 1round = 0; //不能以數(shù)字開頭
int case = 1; //不能以關(guān)鍵字作為變量名
int %age = 16; //不能用標(biāo)點(diǎn)符號
int name age = 18; //不能用空格
4、變量的初始化和賦值
- 在C語言中误澳,可以使用賦值運(yùn)算符(=)將一個(gè)值賦給一個(gè)變量。
例如秦躯,下面的代碼將值20賦給變量num:
int num;
num = 20;
- 變量的初始化是指在聲明變量時(shí)將其賦初值忆谓。
例如,下面的代碼聲明并初始化了一個(gè)名為num的整數(shù)變量:
int num = 10;
5踱承、變量作用域
在C語言中倡缠,變量的作用域指的是變量在程序中可見的范圍哨免。變量可以在函數(shù)內(nèi)部或外部定義。
- 在函數(shù)內(nèi)部定義的變量稱為局部變量昙沦,只在該函數(shù)中可見琢唾。
#include <stdio.h>
void print_local_num() {
int local_num = 20; // 局部變量
printf("local_num = %d\n", local_num);
}
int main()
{
print_local_num(); // 輸出 local_num = 20
return 0;
}
- 在函數(shù)外部定義的變量稱為全局變量,可以在整個(gè)程序中使用盾饮。
#include <stdio.h>
int global_num = 10; // 全局變量
void print_global_num() {
printf("global_num = %d\n", global_num);
}
int main() {
print_global_num(); // 輸出 global_num = 10
return 0;
}
6采桃、變量存儲類型
在C語言中,變量的存儲類型指的是變量所存儲的位置丘损。C語言中的存儲類型包括自動普办、靜態(tài)、寄存器和外部等徘钥。
- 自動變量:自動變量在函數(shù)內(nèi)部聲明衔蹲,在函數(shù)執(zhí)行時(shí)被創(chuàng)建,在函數(shù)結(jié)束時(shí)被銷毀呈础。
- 靜態(tài)變量:靜態(tài)變量在函數(shù)內(nèi)部或函數(shù)外部聲明舆驶,它們在程序開始執(zhí)行時(shí)被創(chuàng)建,在程序結(jié)束時(shí)被銷毀而钞。
- 寄存器變量:寄存器變量是指被存儲在CPU寄存器中的變量沙廉,它們通常用于在計(jì)算密集型的代碼中提高性能。
- 外部變量:外部變量是在程序文件外部聲明的全局變量笨忌,可以被程序的所有文件訪問蓝仲。
??自動變量的默認(rèn)存儲類別為auto。例如官疲,下面的代碼定義了一個(gè)自動變量num:
#include <stdio.h>
void print_num() {
auto int num = 30;
printf("num = %d\n", num);
}
int main() {
print_num(); // 輸出 num = 30
return 0;
}
??靜態(tài)變量默認(rèn)存儲類別為static袱结,在程序執(zhí)行期間始終存在,它的值在函數(shù)調(diào)用之間保持不變途凫。例如垢夹,下面的代碼定義了一個(gè)靜態(tài)變量static_num:
#include <stdio.h>
void print_static_num() {
static int static_num = 40;
printf("static_num = %d\n", 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;
}
??寄存器變量的默認(rèn)存儲類別為register。例如维费,下面的代碼定義了一個(gè)寄存器變量reg_num:
#include <stdio.h>
void print_reg_num() {
register int reg_num = 50;
printf("reg_num = %d\n", reg_num);
}
int main() {
print_reg_num(); // 輸出 reg_num = 50
return 0;
}
??外部變量的默認(rèn)存儲類別為extern果元。例如,下面的代碼定義了一個(gè)外部變量extern_num犀盟,并在另一個(gè)文件中訪問它:
// other_file.c
int extern_num = 60;
// main.c
#include <stdio.h>
extern int extern_num;
void print_extern_num() {
printf("extern_num = %d\n", extern_num);
}
int main() {
print_extern_num(); // 輸出 extern_num = 60
return 0;
}
四而晒、常量
在C語言中,常量可以是整數(shù)阅畴、浮點(diǎn)數(shù)倡怎、字符或字符串。
1、 整數(shù)常量
整數(shù)常量是指不帶小數(shù)部分的數(shù)字监署。在C語言中颤专,整數(shù)常量可以用十六進(jìn)制、八進(jìn)制或十進(jìn)制表示钠乏。下表列出了不同進(jìn)制下整數(shù)常量的表示方法:
進(jìn)制 | 格式 | 示例 |
---|---|---|
十進(jìn)制 | 直接寫數(shù)字 | 10, 20, 30 |
八進(jìn)制 | 以0開頭 | 012, 034, 076 |
十六進(jìn)制 | 以0x或0X開頭 | 0x10, 0x1E, 0xFF |
例如栖秕,下面的代碼定義了三個(gè)整數(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 = %d\n", decimal_num, octal_num, hex_num);
return 0;
}
輸出結(jié)果為:decimal_num = 10, octal_num = 10, hex_num = 255。
2晓避、 浮點(diǎn)數(shù)常量
浮點(diǎn)數(shù)常量是指帶有小數(shù)部分的數(shù)字簇捍。在C語言中,浮點(diǎn)數(shù)常量可以用小數(shù)點(diǎn)表示够滑,也可以用科學(xué)計(jì)數(shù)法表示垦写。例如,下面的代碼定義了兩個(gè)浮點(diǎn)數(shù)常量:
#include <stdio.h>
int main() {
float float_num = 1.23;
double double_num = 1.23e-5;
printf("float_num = %f, double_num = %f\n", float_num, double_num);
return 0;
}
輸出結(jié)果為:float_num = 1.230000, double_num = 0.000012彰触。
3梯投、 字符常量
字符常量是指用單引號括起來的單個(gè)字符。例如况毅,下面的代碼定義了兩個(gè)字符常量:
#include <stdio.h>
int main() {
char char_a = 'A';
char char_b = 'B';
printf("char_a = %c, char_b = %c\n", char_a, char_b);
return 0;
}
4分蓖、 字符串常量
字符串常量是指用雙引號括起來的多個(gè)字符。在C語言中尔许,字符串常量實(shí)際上是一個(gè)字符數(shù)組么鹤,以空字符('\0')結(jié)尾。例如味廊,下面的代碼定義了一個(gè)字符串常量:
#include <stdio.h>
int main() {
char str[] = "Hello, world!";
printf("%s\n", str);
return 0;
}
輸出結(jié)果為:Hello, world!蒸甜。
小結(jié)
通過這篇文章,我們已經(jīng)學(xué)會了C語言中基本的數(shù)據(jù)類型余佛、變量和常量的使用柠新。繼續(xù)加油,你會成為C語言大佬的辉巡!
以上恨憎,如果覺得對你有幫助,點(diǎn)個(gè)贊再走吧郊楣,這樣@知微之見也有更新下去的動力憔恳!
也歡迎私信我,一起交流净蚤!