c 列舉 結構型別全域性變數

2021-09-19 14:53:28 字數 1146 閱讀 9424

列舉:

enum 列舉型別名字;

enumcolor;

void f(enumcolor c);

列舉中的套路:

enum color;

聲名列舉量的時候可以指定值

聲名結構型別時記得加 「;」

結構和陣列有點像,陣列用運算子和下標訪問其成員,a[0]=10;

p1=(struct point);    相當於 p1·x=5 ; p1·y=10;

結構用 · 運算子和名字訪問其成員,today·day  

和陣列不同,結構變數的名字並不是結構變數的位址,必須使用&   struct date*pdate=&today; 

整個結構作為函式引數的值傳入函式 

int numberofdays(struct date d)

用->表示指標所指的結構變數中的成員 

若有變數定義:

struct rectangle r,*rp;

rp=&r;

那麼下面四種形式等價:

r.pt1.x       rp->pt1.x     (r.pt1).x    (rp->pt1).x

但是沒有rp->pt1->x (因為pt1不是指標 )

型別定義:

typedef int length;

使得length 成為int 型別的別名     (第乙個是原來的型別,第二個是新的別名)

例如:typedef struct date;

聯合union anelt etl1,etl2;

全域性變數:

若函式內部存在與全域性變數同名的變數,則全域性變數被隱藏

具有全域性的生存期,全域性的作用域;

本地變數:

具有本地的生存期,本地的作用域;

靜態本地變數:

在本地變數定義時加上static修飾符就成為靜態本地變數

當函式離開時,靜態本地變數會繼續存在並保持其值,靜態本地變數只做一次初始化

靜態本地變數實際上是特殊的全域性變數,他們位於相同的記憶體區域,靜態區域性變數具有全域性的生存期本地的作用域

不要使用全域性變數來在函式間傳遞引數和結果

盡量避免使用全域性變數

c 全域性變數 靜態全域性變數

全域性變數是靜態儲存方式,靜態全域性變數也是靜態儲存方式,這兩者在儲存方式上並無不同。區別 雖在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,靜態全域性變數在各個原始檔中都是有效的。靜態區域性變數則限制了其作用域,只在定義該變數的原始檔內有效,在同一源程式的其它原始檔中不能...

C 全域性變數

c 工程有以下幾個檔案 標頭檔案 a.h,b.h 相應的cpp檔案 a.cpp 包含a.h b.cpp 包含b.h 以及其他一些相關的.h,cpp檔案。a中有類a,b中有類b。現在需要在b.cpp中使用a.cpp 類a中的乙個變數,且希望其是隨著a.cpp 類a的呼叫更新的值。可按如下操作 在a.h...

c全域性變數

c語言中全域性變數可以重複定義 include int g val int g val 1 int main void 執行結果 1 include int g val 2 int g val int main void 執行結果 2 include int g val 2 int g val 1 ...