c語言體系

2021-07-28 20:05:35 字數 3198 閱讀 9575

1)雞兔同籠

#include

using namespace std;

int main()

{int a,b,x,y;

a=35;b=94;

x=2*a-b/2;

y=b/2-a;

cout<<"x="2)c語言體系

資料型別

c的資料型別包括:整型、字元型、實型或浮點型(單精度和雙精度)、列舉型別、陣列型別、結構體型別、共用體型別、指標型別和空型別。

常量與變數

常量其值不可改變,符號常量名通常用大寫。

變數是以某識別符號為名字,其值可以改變的量。識別符號是以字母或下劃線開頭的一串由字母、數字或下劃線構成的序列,請注意第乙個字元必須為字母或下劃線,否則為不合法的變數名。變數在編譯時為其分配相應儲存單元。

陣列如果乙個變數名後面跟著乙個有數字的中括號,這個宣告就是陣列宣告。字串也是一種陣列。它們以ascii的null作為陣列的結束。要特別注意的是,方括內的索引值是從0算起的。

指標如果乙個變數宣告時在前面使用 * 號,表明這是個指標型變數。換句話說,該變數儲存乙個位址,而 *(此處特指單目運算子 * ,下同。c語言中另有 雙目運算子 *) 則是取內容操作符,意思是取這個記憶體位址裡儲存的內容。指標是 c 語言區別於其他同時代高階語言的主要特徵之一。

指標不僅可以是變數的位址,還可以是陣列、陣列元素、函式的位址。通過指標作為形式引數可以在函式的呼叫過程得到乙個以上的返回值,不同於return(z)這樣的僅能得到乙個返回值。

指標是一把雙刃劍,許多操作可以通過指標自然的表達,但是不正確的或者過分的使用指標又會給程式帶來大量潛在的錯誤。

字串c語言的字串其實就是以'\0'字元結尾的char型陣列,使用字元型並不需要引用庫,但是使用字串就需要c標準庫裡面的一些用於對字串進行操作的函式。它們不同於字元陣列。使用這些函式需要引用標頭檔案。

檔案輸入/輸出

在c語言中,輸入和輸出是經由標準庫中的一組函式來實現的。在ansi c中,這些函式被定義在標頭檔案;中。

標準輸入/輸出

有三個標準輸入/輸出是標準i/o庫預先定義的:

stdin標準輸入

stdout標準輸出

stderr輸入輸出錯誤

運算c語言的運算非常靈活,功能十分豐富,運算種類遠多於其它程式語言。在表示式方面較其它程式語言更為簡潔,如自加、自減、逗號運算和三目運算使表示式更為簡單,但初學者往往會覺的這種表示式難讀,關鍵原因就是對運算子和運算順序理解不透不全。當多種不同運算組成乙個運算表示式,即乙個表示式中出現多種運算子時,運算的優先順序和結合規則顯得十分重要。在學習中,對此合理進行分類,找出它們與數學中所學到運算之間的不同點之後,記住這些運算也就不困難了,有些運算子在理解後更會牢記心中,將來用起來得心應手,而有些可暫時放棄不記,等用到時再記不遲。

先要明確運算子按優先順序不同分類,《c程式設計》運算子可分為15種優先順序,從高到低,優先順序為1 ~ 15,除第2.13級和第14級為從右至左結合外,其它都是從左至右結合,它決定同級運算子的運算順序。

關鍵字關鍵字又稱為保留字,就是已被c語言本身使用,不能作其它用途使用的字。例如關鍵字不能用作變數名、函式名等識別符號

由iso標準定義的c語言關鍵字共32個:

auto double int struct break else long switch

case enum register typedef char extern return union

const float short unsigned continue for signed void

default goto sizeof volatile do if while static inline

restrict _bool _complex _imaginary _generic[21] 

基本資料型別

void:宣告函式無返回值或無引數,宣告無型別指標,顯示丟棄運算結果。(c89標準新增)

char:字元型型別資料,屬於整型資料的一種。(k&r時期引入)

int:整型資料,表示範圍通常為編譯器指定的記憶體位元組長。(k&r時期引入)

float:單精度浮點型資料,屬於浮點資料的一種。(k&r時期引入)

double:雙精度浮點型資料,屬於浮點資料的一種。(k&r時期引入)

_bool:布林型(c99標準新增)

_complex:複數的基本型別(c99標準新增)

_imaginary:虛數,與複數基本型別相似,沒有實部的純虛數(c99標準新增)

_generic:提供過載的介面入口(c11標準新增)

型別修飾關鍵字

short:修飾int,短整型資料,可省略被修飾的int。(k&r時期引入)

long:修飾int,長整型資料,可省略被修飾的int。(k&r時期引入)

long long:修飾int,超長整型資料,可省略被修飾的int。(c99標準新增)

signed:修飾整型資料,有符號資料型別。(c89標準新增)

unsigned:修飾整型資料,無符號資料型別。(k&r時期引入)

restrict:用於限定和約束指標,並表明指標是訪問乙個資料物件的唯一且初始的方式。(c99標準新增)

複雜型別關鍵字

struct:結構體宣告。(k&r時期引入)

union:聯合體宣告。(k&r時期引入)

enum:列舉宣告。(c89標準新增)

typedef:宣告型別別名。(k&r時期引入)

sizeof:得到特定型別或特定型別變數的大小。(k&r時期引入)

inline:內聯函式用於取代巨集定義,會在任何呼叫它的地方展開。(c99標準新增)

儲存級別關鍵字

auto:指定為自動變數,由編譯器自動分配及釋放。通常在棧上分配。與static相反。當變數未指定時預設為auto。(k&r時期引入)

static:指定為靜態變數,分配在靜態變數區,修飾函式時,指定函式作用域為檔案內部。(k&r時期引入)

register:指定為暫存器變數,建議編譯器將變數儲存到暫存器中使用,也可以修飾函式形參,建議編譯器通過暫存器而不是堆疊傳遞引數。(k&r時期引入)

extern:指定對應變數為外部變數,即標示變數或者函式的定義在別的檔案中,提示編譯器遇到此變數和函式時在其他模組中尋找其定義。(k&r時期引入)

const:指定變數不可被當前執行緒改變(但有可能被系統或其他執行緒改變)。(c89標準新增)

volatile:指定變數的值有可能會被系統或其他執行緒改變,強制編譯器每次從記憶體中取得該變數的值,阻止編譯器把該變數優化成暫存器變數。(c89標準新增)

C語言知識體系

吾嘗終日而思矣,不如須臾之所學也 吾嘗跂而望矣,不如登高之博見也。登高而招,臂非加長也,而見者遠 順風而呼,聲非加疾也,而聞者彰。假輿馬者,非利足也,而致千里 假舟楫者,非能水也,而絕江河。君子生非異也,善假於物也。出自荀子 勸學 c語言體系結構1 基本概念 2 格式化輸入 3 表示式 4 選擇語句...

C 繼承體系

乙個繼承體系的根數目,深度和扇出數是否合適,要取決於這個體系要模擬的領域和這個領域所需要的特性,繼承體系就好比乙個有向圖。1 根節點 某個類如果沒有基類,既不是任何類的子類,那麼在有向圖中就是根節點。2 類深度 從根節點到該類最長的可能派生路徑中,所有經過類的數目,也就是說繼承的深度,有多少層的繼承...

arm體系中c語言的資料型別

1 unsigned long unsigned long int 2者是等價的,均是無符號整形變數,在arm9中佔4個位元組,int可省略不寫 2 const是乙個c語言的關鍵字,它限定乙個變數不允許被改變。3 區域性變數,可與全域性變數重名,但其會遮蔽全域性變數,在函式內引用這個變數時,會用到同...