C語言易錯點

2022-09-01 21:39:25 字數 1695 閱讀 5860

1.c程式的原始檔拓展名為.c

2.#include 是c語言的預處理指令之一,所謂預處理,就是在編譯之前做的處理,預處理指令一般以 # 開頭

3.乙個c程式中一定會有乙個main函式,也只能有乙個main函式。main函式是整個c程式的入口。

1.在編譯前先執行#include指令,拷貝stdio.h的內容到源程式中

2.編譯源程式,生成目標檔案.obj

3.鏈結c語言函式庫,生成可執行檔案exec

4.執行可執行檔案,在螢幕上輸出"hello, world!"

1.在大型的c程式中,為了分模組進行開發,一般會將函式的宣告和定義(即實現)分別放在2個檔案中,函式宣告放在.h標頭檔案中,函式定義放在.c原始檔中

* sizeof可以用來計算乙個變數或者乙個常量、一種資料型別所佔的記憶體位元組數。

* 定義的形式為:型別  陣列名[元素個數]

int a[5];

* 只能放在陣列名的後面,下面的都是錯誤寫法:

int[5] a; //錯誤

int b; //錯誤

* 裡面的個數必須是乙個固定值,可以是常量(比如6、8)、常量表示式(比如3+4、5*7)。絕對不能使用變數或者變數表示式來表示元素個數,大多數情況下不要省略元素個數(當陣列作為函式的形參和陣列初始化時除外)

下面的都是正確寫法:

int  a[5];   //整型常量

int b['a']; //字元常量,其實就是65

int c[3*4]; //整型常量表示式

下面的都是錯誤寫法:

int a; //沒有指定元素個數,錯誤

int i = 9;

int a[i]; //用變數做元素個數,錯誤

* 按行進行初始化

int a[2][3] = ,  };
* 按儲存順序進行初始化(先存放第1行,再存放第2行)

int a[2][3] = ;
* 對部分元素進行初始化

int a[2][3] = ,  };

int b[3][3] = , , };

* 如果只初始化了部分元素,可以省略行數,但是不可以省略列數

int a[3] = ;

int a[3] = , , {}};

有些人可能想不明白,為什麼可以省略行數,但不可以省略列數。也有人可能會問,可不可以只指定行數,但是省略列數?

其實這個問題很簡單,如果我們這樣寫:

int a[2] = ; //

錯誤寫法

大家都知道,二維陣列會先存放第1行的元素,由於不確定列數,也就是不確定第1行要存放多少個元素,所以這裡會產生很多種情況,可能1、2是屬於第1行的,也可能1、2、3、4是第一行的,甚至1、2、3、4、5、6全部都是屬於第1行的

C語言易錯點

c語言易錯點 1.每個c語言程式中main函式是有且只有乙個的。2.演算法可以沒有輸入,但必須要有輸出。3.在函式中不可以再定義函式。4.break可用於迴圈結構和switch語句。5.break和continue的區別在於前者是跳出迴圈,後者是結束本次迴圈。6.逗號的運算子的級別最低。7.c語言對...

C語言易錯點總結

一下分為幾個部分分別加以說明。一 關鍵字 1.什麼是定義?什麼是宣告?兩者有何區別?答 定義是建立乙個物件,並未該物件分配一塊記憶體和取乙個名字,這個名字就是變數名或者物件名 宣告是告訴編譯器這個變數或者物件的記憶體已經存在,這裡只是引用。兩者最重要的區別在於,定義建立了物件並為物件分配了記憶體,而...

C語言const易錯點

const int a int const a 這兩個寫法是等同的,表示a是乙個int常量。const int a 表示a是乙個指標,可以任意指向int常量或者int變數,它總是把它所指向的目標當作乙個int常量。也可以寫成int const a 含義相同。int const a 表示a是乙個指標常...