C語言學習筆記 查漏補缺

2021-09-24 05:53:44 字數 2950 閱讀 3331

1、強制型別轉換表示式:(資料型別) (表示式)

2、c語言的標頭檔案:c語言的標頭檔案中包括了各個標準庫函式的函式原型。因此,凡是在程式中呼叫乙個庫函式時,都必須包含該函式原型所在的標頭檔案。

表示式:#include stdio.h

3、break是跳出當前整個迴圈,continue是結束本次迴圈開始下一次迴圈。

4、goto語句是一種無條件分支語句.

5、自定義函式:

a、 包含的內容可以省略,預設是 int 型別函式; 函式還有很多叫法,比如方法、子例程或程式,等等。

b、返回型別:乙個函式可以返回乙個值。return_type 是函式返回的值的資料型別。有些函式執行所需的操作而不返回值,在這種情況下,return_type 是關鍵字 void。

return返回的函式值的型別和函式定義中函式的型別應保持一致。如果兩者不一致,則以函式返回型別為準,自動進行型別轉換。

return_type function_name( parameter list )

6、

形參是在定義函式名和函式體的時候使用的引數,目的是用來接收呼叫該函式時傳入的引數。

實參是在呼叫時傳遞該函式的引數。

形參只有在被呼叫時才分配記憶體單元,在呼叫結束時,即刻釋放所分配的記憶體單元。因此,形參只有在函式內部有效。

實參可以是常量、變數、表示式、函式等。

7、變數儲存類別

c語言根據變數的生存週期來劃分,可以分為靜態儲存方式和動態儲存方式。

靜態儲存方式:是指在程式執行期間分配固定的儲存空間的方式。靜態儲存區中存放了在整個程式執行過程中都存在的變數,如全域性變數。

動態儲存方式:是指在程式執行期間根據需要進行動態的分配儲存空間的方式。動態儲存區中存放的變數是根據程式執行的需要而建立和釋放的,通常包括:函式形式引數;自動變數;函式呼叫時的現場保護和返回位址等。

c語言中儲存類別又分為四類:

a、用關鍵字auto定義的變數為自動變數,auto可以省略,auto不寫則隱含定為「自動儲存類別」,屬於動態儲存方式。如:

b、用static修飾的為靜態變數,如果定義在函式內部的,稱之為靜態區域性變數;如果定義在函式外部,稱之為靜態外部變數。如下為靜態區域性變數:

注意:靜態區域性變數屬於靜態儲存類別,在靜態儲存區內分配儲存單元,在程式整個執行期間都不釋放;靜態區域性變數在編譯時賦初值,即只賦初值一次;如果在定義區域性變數時不賦初值的話,則對靜態區域性變數來說,編譯時自動賦初值0(對數值型變數)或空字元(對字元變數)。

c、為了提高效率,c語言允許將區域性變數得值放在cpu中的暫存器中,這種變數叫「暫存器變數」,用關鍵字register作宣告。例如:

注意:只有區域性自動變數和形式引數可以作為暫存器變數;乙個計算機系統中的暫存器數目有限,不能定義任意多個暫存器變數;區域性靜態變數不能定義為暫存器變數。

d、用extern宣告的的變數是外部變數,外部變數的意義是某函式可以呼叫在該函式之後定義的變數

8、內部函式與外部函式

在c語言中不能被其他原始檔呼叫的函式稱謂內部函式 ,內部函式由static關鍵字來定義,因此又被稱謂靜態函式,形式為: 

static [資料型別] 函式名([引數])

這裡的static是對函式的作用範圍的乙個限定,限定該函式只能在其所處的原始檔中使用,因此在不同檔案**現相同的函式名稱的內部函式是沒有問題的。

在c語言中能被其他原始檔呼叫的函式稱謂外部函式 ,外部函式由extern關鍵字來定義,形式為: 

extern [資料型別] 函式名([引數])

c語言規定,在沒有指定函式的作用範圍時,系統會預設認為是外部函式,因此當需要定義外部函式時extern也可以省略。

9、什麼是指標

指標是乙個變數,其值為另乙個變數的位址,即,記憶體位置的直接位址。就像其他變數或常量一樣,您必須在使用指標儲存其他變數位址之前,對其進行宣告

所有指標的值的實際資料型別,不管是整型、浮點型、字元型,還是其他的資料型別,都是一樣的,都是乙個代表記憶體位址的長的十六進製制數。不同資料型別的指標之間唯一的不同是,指標所指向的變數或常量的資料型別不同。

參考:

int main ()

10、巨集定義

巨集定義和全域性變數的區別:

1. 巨集會在預處理階段被替換,而全域性變數是在執行時; 

2. 巨集定義不分配記憶體,全域性變數定義需要分配記憶體; 

3. 巨集不區分資料型別,它本質上是一段字元,在預處理的時候被替換到引用的位置,而全域性變數區分資料型別; 

4. 巨集定義之後值是不能改變的,全域性變數的值是可以改變的; 

5. 巨集定義只有在定義所在檔案,或引用所在檔案的其它檔案中使用。 而全域性變數可以在工程所有檔案中使用,只需在使用前加乙個宣告。

參考:11、預處理器:c 預處理器不是編譯器的組成部分,但是它是編譯過程中乙個單獨的步驟。簡言之,c 預處理器只不過是乙個文字替換工具而已,它們會指示編譯器在實際編譯之前完成所需的預處理。我們將把 c 預處理器(c preprocessor)簡寫為 cpp。

C語言查漏補缺

char a 2 20 a 1 hello 這是錯誤的。c語言把這語句解釋為乙個指標與另乙個指標之間的 非法的 賦值運算。但是在初始化時,char a 2 20 是允許的。對於字串陣列,可以使用 法1 char strs 2 strs 1 hello 法2 char strs 2 20 strcpy...

c語言查漏補缺 指標

1,表示式 p 和 優先順序相同,結合方向自右向左,因此等價於 p 也就是先得到p所指向的變數值 p 再使p p 1。注意區別 p 先取得當前p所指向的變數值,再使p指向後乙個變數,相當於a i p 先取得當前p所指向的變數值,再使p指向前乙個變數,相當於a i p 先使p指向後乙個變數,再取得當前...

c語言基礎查漏補缺

該部分只是用來記錄c語言模糊的知識點 以下寫法錯誤 char c 123 char c1 哦 1.作用 用來計算乙個變數或者乙個常量 一種資料型別所佔的記憶體位元組數。2.基本形式 sizeof 變數 常量 int size sizeof a sizeof 變數 常量 int size sizeof...