C語言程式設計注意點

2021-09-24 12:43:11 字數 2362 閱讀 7709

1、scanf(』%d』,&input)

scanf要用位址符&,字串除外:scanf(』%s』,input),因為字串名字即為字串首位址;

scanf(』%s』,input)遇到空格即結束,gets(input)遇到空格不結束,遇到回車結束;

scanf(』%s』,input),如果input是char *,一定要先用malloc開闢空間。

2、printf(』%d』,num)

printf()不需要取位址符,直接用變數名即可;

3、函式定義

c語言不支援函式過載。同一作用區域不可以有函式重名,但不同作用區域中允許函式重名。不同作用區域可以通過在不同檔案中使用static實現。

4、形參、實參

函式呼叫過程中,形參和實參是值傳遞,不會相互影響。

5、函式返回值

如果函式值的型別和return語句中表示式的值不一致,則以函式型別為準。

6、函式宣告

a、 void printmax(int a, int b);

b、 void printmax(int, int);

兩種方式均可。函式宣告可以放在檔案開頭,則此時全部函式均可使用該函式。

7、函式可以巢狀呼叫,但是不可以巢狀定義

8、函式的遞迴

在呼叫乙個函式的過程中又出現直接或者間接地呼叫該函式本身。(漢諾塔問題)

9、陣列定義

type arrayname [ arraysize ];

10、陣列記憶體是連續的

11、在c語言中,二維陣列是按行排列的。

12、字元陣列

字元陣列只有在定義時才能將整個字串一次性地賦值給它,一旦定義完了,就只能乙個字元乙個字元地賦值了

char str[7];

str = "abc123"; //錯誤

//正確

str[0] = 'a'; str[1] = 'b'; str[2] = 'c';

str[3] = '1'; str[4] = '2'; str[5] = '3';

在c語言中,字串總是以』\0』作為結尾,所以』\0』也被稱為字串結束標誌,或者字串結束符。

『\0』是 ascii 碼表中的第 0 個字元,英文稱為 nul,中文稱為「空字元」。該字元既不能顯示,也沒有控制功能,輸出該字元不會有任何效果,它在c語言中唯一的作用就是作為字串結束標誌。字元』\0』的編碼值就是 0。

由" "包圍的字串會自動在末尾新增』\0』

逐個字元地給陣列賦值並不會自動新增』\0』

13、在函式內部定義的變數、陣列、結構體、共用體等都稱為區域性資料。在很多編譯器下,區域性資料的初始值都是隨機的、無意義的,而不是我們通常認為的「零」值。

14、變數的使用遵循就近原則,如果在當前的區域性作用域中找到了同名變數,就不會再去更大的全域性作用域中查詢

全域性變數的作用域從定義開始到本檔案結束,其他檔案不可用,本檔案中定義之上不可用。通過static可以將全域性變數的作用域限定在本檔案中

15、變數的儲存方式

a、靜態儲存區:程式執行期間由系統分配固定的儲存空間

全域性變數全部存放在靜態儲存區

b、動態儲存區:程式執行期間根據需要動態分配儲存空間

(1)函式形式引數;(2)函式中定義的沒有static關鍵字宣告的變數;(3)函式呼叫時的現場保護和返回位址等

16、變數的儲存類別

a、自動儲存(auto);b、靜態分配(static);c、暫存器儲存(register):允許把變數的值放在cpu的暫存器中;d、外部儲存(extern)

17、預設值問題

static定義的變數有預設值,如int為0;陣列中也有預設值;其他的無預設值,值不確定。

陣列預設值如下:

int arr[10]=;    //剩餘其他為0

int brr[10]; //brr元素無預設值

18、外部函式

定義函式時預設省略extern,可供其他檔案呼叫。

19、c語言是值傳遞,即便是指標作為引數。

20、使用指標時一定要時刻注意指標的當前值

C語言程式設計注意點3

1 將複雜問題分解為簡單問題的程式設計方法稱為結構化程式設計,其特點為自頂向下 逐步細化 模組化 2 定義常量的方法 define 和const define pi 3.1415926 無分號,無常量型別 const float pi 3.14159 3 函式定義 原型 在ansi c標準中,所有函...

C 程式設計注意點

1.strcpy 是碰到 0就會停止拷貝的,最好使用memcpy和strncpy代替。2.memset並不分配記憶體,malloc才分配。3.迴圈裡面要注意出錯的地方sleep 4.匈牙利命名法 5.臨時變數也要有意義 6.控制代碼要注意釋放,特別是在出錯的地方 7.memset不能過於頻繁 8.物...

C語言的注意點

參考 include int main a typedef struct bb printf d d 2f sizeof a sizeof b sizeof a sizeof b 輸出 24 16 0.00 我的電腦是64位 結構體 涉及記憶體對齊以提高記憶體的利用率,位段的使用。因為32位機器的記...