****,昨天的竟然又沒提交上,電腦上還沒備份,鬱悶!
1, c語言中,所有函式引數都是通過值傳遞的。
傳遞給被呼叫函式的函式值存放在臨時變數中。c語言中,被呼叫函式並不能修改主調函式的引數值,而只能修改私有的臨時副本值。
若要呼叫函式修改主調函式引數值,可以採用指標。
2, c語言中字串常量以字元陣列的形式儲存。
strlen(s)返回字串常量s的長度,但不包含末尾的/0.
列舉是乙個常量整形值的列表。若沒有顯式說明,第乙個列舉名的值為0。
不同列舉中的名字必須乎不相同,而同一列舉中不同的名字可以有相同的值。
列舉比#define的優勢:
a, 列舉可以自動生成常量值。
b, 宣告列舉型別變數,編譯器不檢查這種型別的變數中儲存的值是否為該列舉的有效值,但列舉變數做此檢查。
c, 除錯程式可以以符號形式列印列舉變數的值。
3,外部變數
所有外部變數都必須定義在任何函式之外,且只能定義一次,外部變數定義後,編譯程式將為它分配儲存空間。函式在使用外部變數時必須宣告變數,可以使用extern或者是隱含表示。
非自動變數只能進行一次初始化操作。
預設情況下,外部變數與靜態變數的值被初始化為0;自動變數的值為未定義值,即為無效值。
4,常量表示式在編譯時求值,而不是執行時求值。
const修飾陣列時,表示陣列中的所有值都不能被修改。
5,自增自減只作用於變數。
6,按位運算子
只可作用於int, char, short, long
& ! ^(異或)<<(左移) >>(右移) ~取反
7, switch
switch表示式的值是「常量整數值」。
continue語句只用於迴圈語句,不用於switch語句。
8,extern
extern表明此處為外部變數宣告(非定義)
用static宣告限定外部變數與函式,可以將其後宣告的物件的作用域限定為被編譯原始檔的剩餘部分。
用static限定外部變數,可以達到隱藏外部變數的目的。
如果將函式宣告為static,則該函式名除了對該函式宣告所在的檔案外,其餘檔案都無法訪問。
static修飾區域性變數,意味著不管其所在的函式是否被呼叫,它都一直存在。即它是一種只能被特定函式使用但一直占用儲存空間的變數。
對於外部變數與靜態變數而言,初始化表示式必須是常量表示式,且只初始化一次。
9, register宣告只適用於自動變數和函式的形參。
無論暫存器變數是否放在暫存器中,它的位址都不可訪問。
10, 預處理器中的#
形參不允許用帶引號的字串代替。但在替換文字中,若引數名以#作為字首,那麼它將由帶引號的實際引數替換。
##用於連線實際引數。
C語言之指標二
函式指標 如果在程式定義了乙個函式,在編譯時,編譯系統為函式 分配一段儲存空間,這段儲存空間的起始位址,稱為這個函式的指標 函式名就是函式開始的位址 函式二級指標可以修改函式指標的指向 函式指標,不僅僅是位址,必須明確函式指標型別和輸出引數型別和數量 函式名可以作為引數傳遞給函式指標 include...
C語言之指標(二)
二 指標變數做函式引數 在使用函式時我們一般都使用的是基本型別做函式引數,如 int double float等等。那在使用指標變數做函式引數和基本型別做函式引數有什麼不同呢?1 在使用基本型別做函式引數時是把實參的值傳遞給形參,在被調函式中形參值的改變不能改變主函式中實參的值,如下 這個程式是想通...
程式語言之C語言基礎(一)
c語言中的基本資料型別有 在記憶體中基本型別對應有其位元組長度 在32 位的系統上 short 佔據的記憶體大小是2 個byte int佔據的記憶體大小是4 個byte long佔據的記憶體大小是4 個byte float佔據的記憶體大小是4 個byte double佔據的記憶體大小是8 個byte...