您好,登錄后才能下訂單哦!
1.程序=數據+算法;C語言=數據+函數;模塊化程序設計;
2.面向過程是一種以過程為中心的編程思想
3.首先將復雜的問題分解為一個個容易解決的問題
4.分解過后的問題可以按照步驟一步步完成
5.函數是面向過程在C語言中的體現
6.解決問題的每個步驟可以用函數來實現
7.程序中的聲明可以理解為預先告訴編譯器實體的存在,如:變量,函數,等等
8.程序中的定義明確指示編譯器實體的意義
聲明和定義并不相同
extern int a;//聲明是其他文件的變量,不需要分配空間 int a=10;//定義,分配一個空間
9.函數參數在本質上與局部變量相同,都是在棧上分配空間
10.函數參數的初始值是函數調用時的實參值
11.函數參數的求值順序依賴于編譯器的實現,C語言中大多數運算符對其操作數求值的順序都是依賴于編譯器的實現的!!!
12.程序中存在一定的順序點
13.順序點指的是執行過程中修改變量值的最晚時刻
14.在程序達到順序點的時候,之前所做的一切操作必須反映到后續的訪問中
15.每個完整表達式結束時
16.&&,||,?;以及逗號表達式的每個運算對象計算之后
17.函數調用中對所有實際參數的求值完成之后(進入函數體之前)
18.C語言會默認沒有類型的函數參數為int
19.C語言中可以定義參數可變的函數
20.參數可變函數的實現依賴于stdarg.h頭文件
21.va_list變量與va_start,va_end和va_arg配合使用能夠訪問參數值
22.可變參數必須從頭到尾按照順序逐個訪問
23.參數列表中至少要存在一個確定的命令參數
24.可變參數宏無法判斷實際存在的參數的數量
25.可變參數宏無法判斷參數的實際類型
26.va_arg中如果指定了錯誤的類型,那么結果是不可預測的
27.宏是由預處理器直接替換展開的,編譯器不知道宏的存在
28.函數是由編譯器直接編譯的實體,調用行為有編譯器決定
29.多次使用宏會導致程序代碼量增加
30.函數是跳轉執行的,因此代碼量不會增加
31.宏的效率比函數要高,因為是直接展開,無調用開銷
32.函數調用時會創建活動記錄,效率不如宏
33.宏的效率比函數稍高,但是其副作用巨大,容易出錯
34.函數存在實參到形參的傳遞,因此無任何副作用,但是函數需要建立活動形象,效率受影響
35.宏參數可以是任何C語言實體,宏編寫的_MIN_參數類型可以是int,float等等,宏的參數可以是類型名。
36.活動記錄是函數調用時用于記錄一系列相關信息的記錄
臨時變量域:用來存放臨時變量的值,如K++的中間結果
局部變量域:用來存放函數本次執行中的局部變量
機器狀態域:用來保存調用函數之前有關機器狀態的信息,包括各種寄存器的當前值和返回地址等
實參數域:用于存放函數的實參信息
返回值域:為調用者函數存放返回值
37.遞歸是數學領域中概念在程序設計中的應用
38.遞歸是一種強有力的程序設計方法
39.遞歸的本質為函數內部在適當的時候調用自身
40.C語言中遞歸函數必然會使用判斷語句
41.遞歸函數在需要編寫的時候定義函數的出口,否則棧會溢出
42.遞歸函數是一種分而治之的思想
43.不要在函數中使用全局變量,盡量讓函數從意義上是一個獨立的功能模塊
44.參數名要能夠體現參數的意義
45.如果參數時指針,且僅作輸入參數用,則應在類型前加const,以防止該指針在函數體內被意外修改
46.不要省略返回類型,如果函數沒有返回值,那么應聲明為void類型
47.在函數體的“入口處”對參數的有效性進行檢查,對指針的檢查尤為重要
48.語句不可返回指向“棧內存”的“指針”,因為該內存在函數體結束時被自動銷毀
49.函數體的規模要小,盡量控制在80行代碼之內
50.相同的輸入應當產生相同的輸出,盡量避免函數帶有“記憶”功能
51.避免函數有太多的參數,參數個數盡量控制在4個以內
52.有時候函數不需要返回值,但為了增加靈活性,如支持鏈式表達,可以附加返回值
53.函數名與返回值類型在語義上不可沖突
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。