【Xcode學C-5】結構體、全域局部變數以及枚舉變數的知識點

來源:互聯網
上載者:User

標籤:使用   ar   strong   on   amp   as   har   如何   return   

一、全域變數和局部變數


(1)全域變數定義在函數外,局部變數在函數體內,前後範圍不同,生命週期也不同。


二、結構體


(1)定義了結構體不會分配記憶體,只有用結構體定義了變數才會為這個變數分配記憶體。第一個成員的地址就是結構體變數的地址。

int main(int argc, const char * argv[]) {    //結構體的格式    struct person{        int age;        char *name;    };    //定義變數    struct person p1;    //賦值,多種賦值方式,比如 struct person p2={10,"tom"};    p1.age=28;    p1.name="andy";    //訪問    printf("%s\n",p1.name);    return 0;}

(2)分配的空間大小是佔用最大位元組成員變數的倍數。比如上述結構體,int是4位元組,char *是8位元組,一共是12位元組,但為了要是最大位元組成員的整數倍,所以每個結構體變數一共是16位元組。


(3)還有很多種方式定義結構體變數。除了以上方法,還可以在定義結構體的同時在後面分號前面加個p,直接定義一個變數。還有一種方式是匿名結構體,這種匿名結構體只能一次性定義變數,因為後續不能複用。


(4)結構體數組。就是在定義結構體變數的時候批量定義並初始化。如struct person p[3]={{},{},{}};。但很少用。結構體數組只能在定義的時候初始化。


(5)結構體和數組一樣,不可以先定義變數,然後再賦值。


(6)指向結構體的指標,因為是指向結構體的,所以定義方式就是struct person *p;即可。p=&p1;就是把這個指標指向p1。重點是如何取值。可以用(*p).age;但是更普遍的是p->age。


(7)結構體,當然可以嵌套使用。


(8)結構體相比數組最大特點是,裡面可以存放不同類型數值,而數組只能是同種數值。


三、枚舉變數

int main(int argc, const char * argv[]) {    //盡量不要使用數值,所有數值都是魔鬼數值    //int gender=0;        //定義一個枚舉    //我們可以給MAN=100,那麼下面的值是一次遞增的,即WOMAN是101    enum Gender{        MAN,        WOMAN    };    //使用並定義一個枚舉變數gender1    enum Gender gender1=MAN;          return 0;}


【Xcode學C-5】結構體、全域局部變數以及枚舉變數的知識點

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.