c語言學習筆記1 2019 9.17
(1). 標準庫,包含pritf
(2). c語言檔案處理過程:
預處理→編譯→彙編→鏈結
(3). 求餘運算中,數值符號等同於被除數,例如:
7%3=1 -7%3=-1 7%-3=1
(4). 檔案命名一般有兩種不是必須的:①駝峰命名:myfirstname ② my_first_ name
(5). 1byte=8bit byte 最小的編址單位
(6). & 取變數地位位址 取4位元組數值,有型別,
指標是有型別的位址,,,型別決定某一位址定址能力,不同型別定址範圍不同,例如int 和short 取8位數,得的數是不一樣的。
(7). 野指標:指標定義後未初始化,指標隨機指向一位址。此位址可能是系統的值,改變會導致崩潰,需要避免野指標。
null指標,實在是需要提前定義指標,可初始化為null,不指向任何位址。
(8). 強行轉化為指標 例:(long long *)&a
(9). 指標運算 考慮數值和型別
例如: 指標+1 加的是sizeof(t)的大小 ,t是此指標的型別,如char int long
(10). 陣列和指標
二維陣列中 a+1 與 a[0]+1 a與a[0]位址相同型別不同。
(11). 陣列名是乙個常量
陣列不同寫法:
a[i]、(a+i)、(i+a)、 i[a]
(12). *p++ 同一優先順序,後置優先順序先與前置 *p 不過++是運算結束後再++
(13). *(a+1)=a[1]
[(a+1)+2]=a[1][2]
(14).int rand()
a=rand();//返回隨機數,用幾次就返回幾個數。
srand();//產生不同種子,種子不同產生的隨機數不同。
(15). 定義函式:
返回型別 函式名 引數
宣告在呼叫前,傳值與傳址。
(16). 每次呼叫函式會開闢空間,呼叫後釋放。故必須返回值,傳過去位址的話就無須返回值,位址值不變,內容可變。
(17) 陣列在傳遞過程中,只會傳遞首位址。
(18)遞迴 函式自己呼叫自己
遞迴結構
if (遞迴終止處理)
終止處理
else
func(趨於遞迴終結的條件)
(19)在函式呼叫時,傳遞的引數是實參,常量,變數,表示式
函式定義(宣告)中引數是形參。
(20)小作用域**現於大作用域重名變數時,會遮蔽大作用域變數
(21)大括號外變數,全域性變數
(22)區域性變數 作用域定義開始到大括號結束
全域性變數 作用域定義開始到檔案結束
(23)區域性變數未初始化則為隨機
全域性變數未初始化為0
(24)全域性變數也會如20中一樣面臨遮蔽。
(25)區域性變數的生命週期是所呼叫函式的週期
(26)作用域 空間 生命週期 時間
(27)在main()中區域性變數與全域性變數生命週期相同
(28)修飾符 auto register exterrn static
(29)auto 修飾區域性變數,呼叫時生成,結束後消失,可省略。
總結 :隨用隨開,用完即消,無需記憶
(30)register 修飾區域性變數,將變數放到暫存器中,加快執行速度,暫存器有限,往往被編譯器優化為auto ,不起作用,無需記憶
(31) extern 修飾全域性變數 宣告變數在別的地方定義,程式在其他地方查詢變數定義。
宣告可以多次,定義只可以一次。
(32)static 都可以修飾,靜態變數。 作用:靜態變數只可以初始化一次。
修飾區域性變數,若未初始化,自動初始化為零。
(33)static 修飾全域性變數時,全域性變數變成此單檔案的全域性變數。其他檔案中,可以重新定義初始化此全域性變數,同樣需要用static修飾。
C語言學習筆記(1)
標頭檔案 silence獨家 標頭檔案之間的相互依賴性導致編譯時間的上公升。過度複雜的標頭檔案包含關係,使得編譯頻繁,而且大大增加編譯的時間。1 標頭檔案中適合放置介面的宣告,不適合放置實現 內部使用的函式 注意是內部使用函式 宣告不應該放在標頭檔案中 內部使用的巨集,列舉,結構定義不應該放入標頭檔...
C語言學習筆記1
1 c語言中gets 與scanf 兩個函式的區別 可以用如下兩種方式輸入字串 char string 15 gets string 遇到回車認為輸入結束 scanf s string 遇到空格認為輸入結束 所以在輸入的字串中包含空格時,應該使用gets輸入。2 break 與continue的區別...
C語言學習筆記1
1.任何c語言程式都可以從main函式開始執行,從main函式結束。main 括號裡就是函式輸入,輸出型別由其前面的關鍵字定義 void 是返回型別為空即可以無輸出 當引數改變時輸出也會改變,裡面的內容就是函式體,即怎樣將輸入轉化為輸出。c語言嚴格區分大小寫,且main函式有且僅有乙個 2.h檔案就...