C語言基礎小結(一)

2023-02-07 11:00:46 字數 2530 閱讀 6291

1. 編寫原**(.c)->預處理(預編譯)(.i)->編譯(.s)->彙編(.o/.obj)->連線->執行

2. c語言不同於c++,c中變數必須先定義後使用,不能在定義變數的同時使用變數。

變數名只能由字母、數字和下劃線組成,且只能以字元或者下劃線開頭。

3. 在函式內定義的變數稱為區域性變數。

4. 區域性變數僅在定義它的**塊內部有效,出了該**塊變數就消失。

5. 在任何函式外定義的變數稱為全域性變數。

6. 全域性變數在程式中都是可見的,可以被任何**塊所用。

7. c99關鍵字

auto 宣告自動變數,預設時編譯器一般預設為auto

int 宣告整型變數

double 宣告雙精度變數

long 宣告長整型變數

char 宣告字元型變數

float 宣告浮點型變數

short 宣告短整型變數

signed 宣告有符號型別變數

unsigned 宣告無符號型別變數

struct 宣告結構體變數

union 宣告聯合資料型別

enum 宣告列舉型別

static 宣告靜態變數

switch 用於開關語句

case 開關語句分支

default 開關語句中的“其他”分支

break 跳出當前迴圈

register 宣告暫存器變數

const 宣告只讀變數

volatile 說明變數在程式執行中可被隱含地改變

typedef 用以給資料型別取別名(當然還有其他作用)

extern 宣告變數是在其他檔案正宣告(也可以看做是引用變數)

return 子程式返回語句(可以帶引數,也可不帶引數)

void 宣告函式無返回值或無引數,宣告空型別指標

continue 結束當前迴圈,開始下一輪迴圈

do 迴圈語句的迴圈體

while 迴圈語句的迴圈條件

if 條件語句

else 條件語句否定分支(與if連用)

for 一種迴圈語句(可意會不可言傳)

goto 無條件跳轉語句

sizeof 計算物件所佔記憶體空間大小

8. case後只能是整型或者字元型常量或者常量表示式

9. break是終止本層迴圈;

continue是終止本輪迴圈,然後繼續下一輪迴圈。

10. const修飾的變數為只讀變數,近水樓臺先得月,誰緊隨其後,它就修飾誰,誰就是readonly

11. volatile修飾的變數旨在告訴編譯器此變數是不穩定的,隨時可能會被更改,每次取值都必須到記憶體當中去取,不得對它進行優化。

12. extern修飾的變數或函式就是告訴本檔案中所有成員,這傢伙不是土著,而是老外,這傢伙的家鄉(定義)在外國(外面的檔案中)。

13. sizeof是個關鍵字,不是函式,當sizeof在計算變數所佔空間大小時,括號可以省略,但在計算型別所佔空間大小時,括號不能省略;sizeof是在編譯的時候就進行計算!

14. 正數的補碼和原碼相同,負數的補碼最高位為1,其餘各位按位取反後+1

15. char a[1000];

int i;

for(i=0;i<1000;i++)

printf(“%d\n”,strlen(a));

這裡列印結果為255,原因為負數的儲存是以補碼形式,當i=255時,a[255]=-256,-256的絕對值的原碼是100000000,它的補碼是絕對值的原碼的最高位為1,其餘按位取反,然後加1,結果仍是100000000,該值為0;

strlen計算的是字串到0為止(不包括0)

16. 空結構體的大小為1個位元組(任何型別都有大小,至少為1個位元組)

17. 一個union只配置一個足夠大的空間用來容納最大長度的資料成員,同一時間只能儲存一個資料成員,所有資料成員具有相同的起始地址。union主要用來壓縮空間。

18. 儲存模式:大端模式和小端模式。大端模式字資料的高位元組儲存在低地址中,小端模式剛好相反。

19. 列舉enum,列舉常量預設從0開始,逐個遞增1;後一個常量的值=前一個常量值+1

20. 預算符##:#define connect(a,b) a##b預處理後的結果就是connect(a,b)的地方替換成ab

21. 指標,就是存放記憶體地址的變數,大小固定,32位系統中的大小為4個位元組。

22. c語言中左值只能是非只讀變數;

23. 當陣列名作為右值時,相當於該陣列首元素的地址,陣列名不能作為左值;

24. 對指標進行加1操作,得到的是下一個元素的地址,而不是在原有地址值上直接加1,一個型別為t的指標的移動,以sizeof(t)為移動單位;

int a[5]=;

int *ptr=(int *)(&a+1);

printf(“%d,%d”,*(a+1),*(ptr-1));

列印結果為2,5

(&a+1)取陣列的首地址,然後在該地址的基礎上加上sizeof(a)的值

25. a是一個陣列,a=&a,但意義完全不一樣,a是陣列的首個元素的地址,&a是表示整個陣列的首地址,a+1=a[1],&a+1=下一個陣列的首地址

C語言基礎總結一

1 資料型別 常量指數表示方法 e e 前為數字,後為整數 轉義字元 13個 t v a b f n r 符號常量 define pi 3.14 預編譯命令 先替換再算 變數常變數 const 符號常量與常變數區分 符號常量是預編譯命令,替換作用,預編譯後符號常量不存在 常變數佔用儲存單元,有變數值...

C 語言基礎 一)

1.資料型別分為值型別和引用型別。值型別主要包含簡單型別 結構型別和列舉型別。引用型別包括類 託管 陣列和介面。值型別的變數其內含為變數的值本身 c 語言中的另一大資料型別是引用型別,引用型別也稱為參考型別。和值型別相比,引用型別的變數不直接儲存所包含的值,而是指向它所要儲存的值。換句話說,值型別在...

C 語言基礎(一)

好久沒用 c 語言了,回顧下基本知識。先找找感覺,經典的 helloworld include int main 注 1.include是一條預處理命令,它的作用是通知 c 語言編譯系統在對 c 程式進行正式編譯之前需做一些預處理工作。2.在最新的 c 標準中,main函式前的型別為int而不是vo...