C和指標詳解 結構和聯合

2021-07-11 03:13:33 字數 746 閱讀 6809

結構的自引用

struct self
這種自引用是非法的。因為成員b是另乙個完整的結構體,其內部還將包含它自己的成員b。這樣永無止境的重複下去。

struct self
這樣就是合法的了。

作為函式引數的結構

雖然將乙個結構變數作為引數是合法的,但是這樣往往並不適宜。

傳遞乙個結構體。它的效率很低,因為在c語言中,引數之間的傳值呼叫方式要求把引數的乙份拷貝傳遞給函式。

如果用乙個指向結構體的指標則會好的多。指標比真個結構要小很多,所以把它壓到堆疊上效率能提高很多。

位段位段的宣告和任何普通的結構成員宣告相同,但有兩個例外。首先,位段成員必須宣告為int、signed int或unsigned int型別。其次成員後面是乙個冒號和乙個整數。這個整數指定該位段所占用的數目。

struct char;

struct char ch1;

它能夠把長度為奇數的資料報裝在一起,節省儲存空間。當程式需要使用成千上萬的這類結構時,這種節省方法就很重要。

另乙個使用段位的理由是由於他們可以很方便地訪問乙個整型值的部分內容。

聯合聯合的所有成員引用的是記憶體中的相同位置。當你想在不同的時刻把不同的東西儲存於同乙個位置時,就可以使用聯合。

union fi;
如果成員f被使用,這個字就作為浮點值訪問;如果成員i被使用,這個字就作為整型值訪問。

C和指標(7)結構和聯合

第10章 1 聚合資料型別能夠同時儲存超過乙個的單獨資料。c提供了兩種型別的聚合資料型別,陣列和結構。陣列是相同型別的元素的集合,它的每個元素是通過下標引用或指標間接訪問來選擇的 因為陣列的元素長度相同 2 結構也是一些值得的集合,這些值稱為它的成員,但乙個結構的各個成員可能長度不同,故不能使用下標...

《C和指標》筆記(十二) 結構和聯合

qq 1841545843 郵箱 jiaxx903 163.com 宣告結構體使用typegef建立一種新的型別 struct typedef struct 這個和宣告乙個標籤的作用相同。區別在於現在 為乙個型別而非乙個標籤。2.結構體的自引用 struct self ref 現在b是乙個指標,而不...

C和指標 第10章 結構和聯合

1.結構 struct x struct y 20 z 警告 以上兩個宣告被編譯器當做兩個截然不同的型別。即y和z為同一型別,但與x型別不用。使用結構標籤宣告結構 struct 此時 是結構標籤,使用標籤建立需要如下 struct x struct y 20 z 使用typedef定義乙個新型別 t...