C語言部分關鍵字

2021-07-23 23:23:17 字數 1618 閱讀 2647

1.      static: 修飾區域性變數(只在初次執行時,進行初始化工作)  全域性變數(只是本.c檔案可見)   函式(類似於全域性變數)

2.      extern:編譯器並不匹配extern的函式的引數列表,只做函式名匹配!

3.      typedef:重定義過的資料型別,對於typedef char* newc;   newc a,b;,這時候會將a b都定義為char *,而使用char *a,b或者define獲得效果都是只能把a定義為char *,而b還是char而已

4.      typedef char * ptrc;  const ptrc p2 = string;  這裡並不是和define效果一樣,簡單的替換,而是變為const 修飾了p2這個指標變數是常量。

5.      #define的好處:可以使用ifndef  undef ifdef等;唉進行邏輯判斷。

6.      typedef的好處:定義的變數型別範圍被限制在所定義的函式或者檔案內。

7.      int *( *(*fp) (int))[10];   解釋:fp是乙個函式指標,指向乙個形參為乙個int型資料的,返回值是乙個指向有10個指標的指標陣列的指標,該指指標陣列裡的每乙個元素指向乙個整型。

8.      int *(*(*arr[5])( ))( );   解釋:arr是函式指標陣列,陣列中每個元素指向乙個形參為空,返回值是乙個指向函式指標的指標,該函式形參為空,返回值為int型。

9.      float (*(*b( )) [ ])( );   解釋:b是乙個函式指標,該函式引數為空,返回值指向乙個函式指標陣列,陣列中的每乙個元素都指向乙個函式引數為空,返回float型的函式。

10.  float( *(*e[10])(int *))[5];  解釋:e是函式指標陣列,每個元素指標指向乙個函式引數為int *,返回值指向乙個陣列指標,陣列大小為5,型別為float的函式。

11.  sizeof a/(a)    而 sizeof(int)必須加括號

12.  為什麼乙個位元組的範圍為 -2^7 – 2^7-1  ? 補碼表示,-128取反加一,得到數字就是最小,而整數取反加一是本身,而且最高位為符號位,所以最大為2^7-1

13.  unsigned int + int ->unsigned int

14.  struct student str = ;可以這樣初始化

15.  結構體大小:以最長的成員長度進行分配(無論這個最長的成員位於什麼位置,整個結構體為每個變數分配的長度就是最長的位元組數)

struct

stu

;  大小為16 = (4 + 1) + 8  = 8 + 8          

16.  結構體成員後為;  列舉成員後為,   聯合union 成員後為; 

17.  列舉和#define的區別:1)#define 在預編譯階段進行簡單的替換,列舉常量則是在編譯的時候確定其值;  2)一般在編譯器裡,可以除錯列舉常量,但是不能除錯巨集常量;  3)列舉一次可以定義大量相關的常量,而define只能一次定義乙個。

18.  列舉的大小:一般為4個位元組,為乙個整型int的大小,和其中的常量個數無關,因為是常量,所以不具有記憶體空間大小。

19.  聯合體的大小:取聯合中最長的成員長度,注意對齊方式vs2013採用以最短成員為對齊長度!!!!

C語言部分關鍵字

void char int float double short long signed unsigned struct union enum typedef sizeof auto static register extern const volatile return continue brea...

c語言部分關鍵字簡析

一 sizeof c語言中判斷資料型別或者表示式長度符。用法有 sizeof type name sizeof object sizeof object int i sizeof int sizeof i sizeof i sizeof與strlen strlen計算不包含 0 null 的字串長度...

部分關鍵字

final 修飾類,則類不允許被繼承 修飾變數,則變數為常量,不允許被再次賦值 修飾方法,則方法不允許被重寫 修飾屬性,則類的屬性不會進行隱式的初始化,也就是類的初始化屬性必須有值,或者要在構造方法中賦值,但只能選其一。super 在子類使用,可代表父類物件,如在子類student中有方法 publ...