20171129 C語言知識點梳理
**C語言程序的基本結構**
```c
#include <stdio.h> // #include 預處理指令
void main()
{
printf(“Hello World!\n”);
}
```
- 預處理器指令非必須,若有,放在程序開始處
- 以.h結尾的文件是頭文件
- stadio.h文件包含有關輸入輸出語句的函數
- main()函數是C語言程序處理的起點
- main()函數可以返回一個值,也可以不返回。沒有返回值時,前面關鍵字時viod
- printf打印命令,在屏幕上打印“”內的內容
- \n 換行
**註釋**
- 單行註釋 //
多行註釋 /* */
**C語言的編譯和執行**
- 編譯:形成目標代碼/文件。目標代碼是編譯器的輸出結果,常見擴展名為”.o” 或”.obj”
- 連接:將目標代碼跟C函數庫相連接,並將源程序所用的庫代碼與目標代碼合並形成最終可執行的二進制機器代碼(可執行程序)
- 執行:在特定的機器環境下運行C應用程序
**C語言變量命名規則**
- 只能由字母、數字和下劃線3種字符組成,且第一個字符必須為字母或下劃線;
- 變量名不能包含除 _ 以外的任何特殊字符,如:%、 # 、逗號、空格等;
- 不可以使用保留字。
**C語言基本數據類型**
- 數值類型, 包括整形(int、short、long)、浮點型(float、double)。
- 字符類型, 包括char。
- 其他類型, 包括構造類型、指針類型、空類型等
**C語言常用數據類型**
數據類型 類型說明符 位數 取值範圍
數據類型 |
類型說明符 |
位數 |
取值範圍 |
整型 |
int |
32 |
-2147483648 ~ +2147483647 |
短整型 |
short |
16 |
-32767 ~ +32768 |
長整型 |
long int |
32 |
-2147483648 ~ +2147483647 |
單精度浮點型 |
float |
32 |
-3.4E-38 ~ +3.4E+38 |
雙精度浮點型 |
double |
64 |
1.7E-308 ~ 1.7E308 |
字符型 |
char |
8 |
-128 ~ +127 |
**聲明和使用變量**
- 只聲明變量:數據類型 變量名;
- 聲明時初始化:數據類型 變量名 = 值;
- 聲明變量後初始化: 數據類型 變量名; 變量名 = 值;
= 賦值 即 後面的數值賦給前面的變量
**常用ASCLL碼**
- 0 : 空字符 \0
- 32 : 空格
- 65~69:A~Z
- 97~122:a~z
**printf函數和轉換字符**
- %d:有符號十進制整數
- %c:單個字符
- %s:字符串
- %f:浮點數,默認精確到6位小數,可以用%.xf精確到到小數點後x位
- %%:打印一個百分號
**轉義序列**
- \a 蜂鳴警報
- \n 換行 將光標移到下一行的開始處
- \t 水平制表 將光標移到下一個水平制表位置
**scanf函數**
scanf可以讀取不同格式的數據
用法:
```c
int num;
printf("請輸入數量:");
scanf("%d", &num); //&轉義符號
```
**轉換字符串和含義**
- %d:把輸入解釋成有符號整型
- %c:把輸入解釋成字符型
- %s:把輸入解釋成字符串
- %f:把輸入解釋成單精度浮點數
- %lf:把輸入解釋成雙精度浮點數
**算數運算符**
- 一元運算符:++、--
- 二元運算符:+、-、*、/、%
**前置++和後置++**
- i++是先取i值做計算,運算完最後再+1;
- ++i是先+1,再取i值做計算。
**自動類型轉換**
把表示範圍小的類型的值轉換到表示範圍大的類型的值
double result = 5 / 2; // 5 和 2是整形 先做除法,結果為2
在2賦值給double類型的result時,將自動轉換為double類型2.0
**強制類型轉換**
(類型名)變量或數值
20171129 C語言知識點梳理