/* 結構體?:?保存一組類型不同的數據; ????定義格式?:? ????????1,定義結構體類型后,再定義結構體變量?:? ????????????struct?attr_type_name?{attr_type?attr_name;......};struct?struct_name?struct_var_name; ????????2,定義結構體類型的同時,定義結構體變量?: ????????????struct?attr_type_name?{attr_type?attr_name;......}struct_var_name;????//結構體類型名稱可省略不寫,但這樣的結構體類型是一次性的; ????初始化?: ????????1,定義結構體類型的同時,定義結構體變量,并進行初始化?: ????????????struct?attr_type_name?{attr_type?attr_name;......}struct_var_name?=?{.atrr_name?=?attr_value,.....}; ????????2,定義結構體類型后,再定義結構體變量并進行初始化?: ????????????struct?attr_type_name?{attr_type?attr_name;......};struct?struct_name?struct_var_name?=?{.atrr_name?=?attr_value,.....}; ????????3,定義結構體類型后,再定義結構體變量,之后在進行初始化?: ????????????struct?attr_type_name?{attr_type?attr_name;......};struct?struct_name?struct_var_name;struct_var.atrr.name?=?attr_value; ?????結構體在內存中的存儲細節?:?與數組類似,不同的是在定義結構體類型時,并不會分配內存空間,只有在定義結構體變量時,才會分配內存空間; ?????結構體變量地址?:?為結構體變量第0個屬性的地址,并沒有保存在結構體變量名稱中; ?????結構體變量在內存中的實際存儲原則?:? ?????????原則?:?按照結構體中占用內存最大的屬性占用的內存的倍數為結構體變量分配內存; ?????????也即會按照占用內存最大的屬性占用的內存為每一個屬性分配內存,并查看其剩余內存是否足夠容納下一個屬性,如果足夠,則直接裝入下一個屬性,如果不夠,重新分配一個最大內存, ??????????裝入該屬性,至于上一個屬性的剩余內存仍屬于該結構體變量,但至此將其空置不在使用; ?????結構體類型或變量的作用域?:?自定義位置起至return或"}"結束 ?????//注?:?局部變量在不同作用域內,可同名;全局變量作用域為自定義位置起至文件末尾; ?????指向結構體變量的指針?: ?????????定義格式?:?struct?struct_type_name?*var_name; ?????????//注?:?"."的運算級要高于"*" ?????通過指向結構體的指針訪問結構體變量的另類方法?:?指向結構體變量的指針?->?屬性; ?????結構體數組?:? ?????????定義格式?:?struct?struct_type_name?數組名稱[元素個數]; ?????結構體嵌套?:?結構體中嵌套一個結構體; ?????結構體和函數?:?當把結構體變量作為實參傳值給形參時,是進行值傳遞,函數內部修改結構體變量對實參沒有影響; ????? */
分享名稱:C語言之c
網頁地址:http://m.kartarina.com/article6/jecoog.html
成都網站建設公司_創新互聯,為您提供做網站、建站公司、企業網站制作、虛擬主機、、小程序開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯