C語言 基礎知識

2021-09-01 19:48:14 字數 2702 閱讀 8285

1、開啟終端(ctrl+alt+t),mkdir day01 建立目錄,cd 目錄名。

2、vim file.c,進入vim文字編輯器,輸入i,進入**編輯模式。

3、編寫**,ctrl+x執行**,ctrl+z儲存退出。

4、vimtutor

#include功能是把頭檔案匯入到當前** ( stdio startand in out head )

#include

main是c**的執行入口,有且只能有乙個。

int main()

對**進行劃分管理區域

編輯器:型別記事本一樣的用來編寫**的工具。

編譯器:負責把**檔案翻譯成可執行程式的軟體。

gcc 是gnu社群為編譯linux核心開發的一款編譯器。

gcc code.c -> a.out

編譯器是如何把c**翻譯成可執行程式的:

1、預處理

把**中以#開頭的指令翻譯成標準的c**,生成預處理檔案。

gcc -e code.c -o code.i

2、彙編

把預處理檔案翻譯成彙編檔案

gcc -s code.i -> code.s

3、編譯

把彙編檔案翻譯成目標檔案(二進位制)

gcc -c code.s -> code.o

4、鏈結

把若干個目標檔案合併成乙個可執行檔案

gcc a.o b.o c.o -> a.out

為什麼要把資料進行分類:

1、現實社會中的資料是自帶類別屬性。

2、對資料進行分型別可以節約儲存空間、提高執行效率。

c語言中資料分類兩人大類自建(程式自己設計的,如:結構、聯合、類)和內建(c語言自帶)。

整型:char、short、int、long、long long

有符號 signed : 它儲存資料的二進位制位中最高位用來表示正負。

無符號 unsigned :它的所有的二進位制位都用來儲存資料,只能表示正數。

浮點型:

float 單精度

double 雙精度

long double 高精度

浮點型資料採用的是科學計數,可以表示較大範圍的資料,但是精確度有限。

浮點型的資料由於格式特殊,所以運算的效率不高,程式設計時優先選擇整型。

布林型別:c語言中沒有真正的布林型別,若使用必須新增標頭檔案stdbool.h

bool true false

字元型:字元其實就是符號或圖案,在計算機中是以整數形式儲存的,當需要顯示時會根據ascii表中的對應關係,顯示相應的符號。

『\0』 = 0

『0』 = 48

『a』 = 65

『a』 = 97

儲存資料的容器,需要先定義後使用。

定義:型別 變數名;

注意:剛定義的變數預設值是不確定的,為了安全一定要初始化(養成良好的習慣)。

變數的取名規則(識別符號的取名規則):

1、只能由字母、數字、下劃線組成。

2、不能以數字開頭。

3、不能與關鍵字重名(32個關鍵字)。

4、盡量不要超過30個字元。

5、見名知義(功能+型別+作用域+…)。

c語言中通過使用佔位符的方式來告訴printf/scanf變數的型別。

變數的輸出:printf 型別 變數名

sizeof 計算變數的位元組數。

練習:定義各型別的變數,使用scanf接收,使用printf顯示,使用sizeof計算變數的位元組數。

字面值常量(**中能直接使用的數量:100,1000),不可被修改,儲存在一塊只有唯讀許可權的記憶體中(**段)。

設定字面值常量的型別:

預設是int(10)型別,或double(3.14)型別。

10u unsigned short

10u unsigned int

10u8 unsigned char

3.14f float

3.14l long double

/ % 除數不能為零,如果除數為零程式會提前死亡。

關係運算子:> < >= <= == !=

運算的結果是邏輯:true=1 false=0

==使用時常量放在左邊,變數放右邊。

num == 10;

10 == num; 防止出錯

10 < num < 100; 數學中[11,99],c語言中永遠為真。

在運算之前會把運算物件轉換成邏輯值:零值轉換成假,非零值轉換成真,然後再對邏輯值進行運算,得到的結果也是邏輯值。

a && b 一假即假

a || b 一真即真

!a 對a的值求反

!比&&、||運算級別要高(單目運算子的級別都比較高)。先後順序 (not and or)

&&、|| 具有短路特性,當左邊的值已經能確定表示式的結果,右邊的值則不再計算(注意思維誤區,還可以藉此形成精簡的分支結構)。

int num = 0;

num>0 && num–;

num += 10 <=> num = num + 10;

當1的值為真時執行2,否則執行3,類似if語句。

不能使用流程控制語句,因為畢竟是運算子,必須要有運算結果。

1、sizeof不是函式而是運算子,而且是32個關鍵字之一。

2、只是推算表達的結果是什麼型別、佔多少個位元組(取最大的),而不計算表示式。

C語言基礎知識

1 的問題。int i 1 int j 2 int k i j printf d k 輸出k為3。編譯原理有關編譯器在詞法解析的時候,對於運算子,總是查詢最大的匹配也就是說,i j,編譯器在找到 的時候,它不立即理解為 而是繼續下乙個字元,下乙個字元仍然是 可以組成 再往下的話便是 不成立了。所以i...

C語言基礎知識

一 位元組對齊 位元組對齊的原因,是機器在訪問記憶體中儲存的資料的高效性。通常機器是機器位數為自然邊界來訪問記憶體的,如果乙個4位元組整形數,所在的記憶體不在虛擬記憶體的自然邊界。則cpu需要讀多於一次的資料,這樣就降低了效率。所以,簡單地說,就是保證cpu指令在訪問資料的時候,能一次讀取,而不需要...

C語言基礎知識

1.進製 1 基數 基數為n,代表n進製 2 位權 從個位開始,向左依次編號為0,1.x 分別代表n進 制的x次 3 八進位制以0開頭,十六進製制以0x開頭 4 x 進製轉 進製 按權求和 十進位制轉 x進製 連除倒取餘 2.基本資料型別 3.常量 程式執行期間值不能被改變的量 分為 整型常量,浮點...