<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          C語言自定義類型之結(jié)構(gòu)體

          共 1546字,需瀏覽 4分鐘

           ·

          2021-01-12 18:26

          前言

          上一章節(jié)主要講解的是指針的動態(tài)內(nèi)存申請,三個申請函數(shù),realloc,malloc,calloc。本章節(jié)主要是針對于結(jié)構(gòu)體類型做個講解。剩下的兩種自定義類型,聯(lián)合體和枚舉類型下個章節(jié)做介紹。

          C語言結(jié)構(gòu)體

          在C語言中,結(jié)構(gòu)體是不同數(shù)據(jù)類型的元素的集合。該結(jié)構(gòu)用于使用C語言創(chuàng)建用戶定義的數(shù)據(jù)類型。作為用于創(chuàng)建用戶定義的數(shù)據(jù)類型的結(jié)構(gòu),該結(jié)構(gòu)也被稱為“ C語言中的用戶定義的數(shù)據(jù)類型”。換句話說,結(jié)構(gòu)是不均勻元素的集合。使用結(jié)構(gòu),我們可以定義稱為用戶定義數(shù)據(jù)類型的新數(shù)據(jù)類型,該數(shù)據(jù)類型包含不同數(shù)據(jù)類型的多個值。結(jié)構(gòu)體的正式定義:結(jié)構(gòu)體是單一名稱下不同類型元素的集合,它充當(dāng)C中用戶定義的數(shù)據(jù)類型。

          通常結(jié)構(gòu)體用于定義c編程語言中的記錄。結(jié)構(gòu)體使我們能夠?qū)⒉煌瑪?shù)據(jù)類型的元素組合成一個組。結(jié)構(gòu)體中定義的元素稱為結(jié)構(gòu)成員。

          如何創(chuàng)建結(jié)構(gòu)體

          要在c語言中創(chuàng)建結(jié)構(gòu)體,我們使用名為“ struct ” 的關(guān)鍵字。我們使用以下語法以c編程語言創(chuàng)建結(jié)構(gòu)體。

          以下是創(chuàng)建稱為student的結(jié)構(gòu)的示例,該結(jié)構(gòu)用于保存學(xué)生記錄。

          注意點

          1. 每個結(jié)構(gòu)都必須以分號(;)終止。

          2. “ struct”是一個關(guān)鍵字,必須僅使用小寫字母。

          結(jié)構(gòu)體變量創(chuàng)建

          在編程語言中,有兩種創(chuàng)建結(jié)構(gòu)變量的方法。我們可以在定義結(jié)構(gòu)的同時創(chuàng)建結(jié)構(gòu)變量,也可以在使用struct關(guān)鍵字終止結(jié)構(gòu)后創(chuàng)建。

          要使用結(jié)構(gòu)變量訪問結(jié)構(gòu)的成員,我們使用點(.)運算符??紤]以下示例代碼

          每當(dāng)我們用結(jié)構(gòu)體變量訪問結(jié)構(gòu)的成員時,我們都使用點(.)運算符。即:結(jié)構(gòu)體變量.成員方式.

          注意點

          1. 一個結(jié)構(gòu)的所有成員可以同時使用。

          2. 在創(chuàng)建結(jié)構(gòu)變量之前,不會分配任何內(nèi)存。

          結(jié)構(gòu)體數(shù)組

          對于結(jié)構(gòu)體數(shù)組,我們先回想一下整型數(shù)組,例如我們要統(tǒng)計咱們班30個人的姓名,學(xué)號 ,成績,如果我們用結(jié)構(gòu)體變量來實現(xiàn)是不現(xiàn)實的。那么我們就準(zhǔn)備用結(jié)構(gòu)體數(shù)組來完成這事。結(jié)構(gòu)體數(shù)組就是同一類型的結(jié)構(gòu)體變量的集合,內(nèi)存分布上是連續(xù)的。一個結(jié)構(gòu)體變量中可以存放一組數(shù)據(jù);如一個學(xué)生的學(xué)號、姓名、成績等數(shù)據(jù).如果有10個學(xué)生的數(shù)據(jù)需要參加運算顯然應(yīng)該用數(shù)組,這就是結(jié)構(gòu)體數(shù)組(如果定義10個結(jié)構(gòu)體變量太麻煩了)結(jié)構(gòu)體數(shù)組與以前介紹過的數(shù)值型數(shù)組不同之處:每個數(shù)組元素都是一個結(jié)構(gòu)體類型的數(shù)據(jù),它們都分別包括各個成員。

          結(jié)構(gòu)體指針

          前面我們通過“結(jié)構(gòu)體變量名.成員名”的方式引用結(jié)構(gòu)體變量中的成員,除了這種方法之外還可以使用指針。那么,這個指針變量定義成什么類型呢?只能定義成結(jié)構(gòu)體類型,且指向什么結(jié)構(gòu)體類型的結(jié)構(gòu)體變量,就要定義成什么樣的結(jié)構(gòu)體類型。比如指向 struct student 類型的結(jié)構(gòu)體變量,那么指針變量就一定要定義成 struct student* 類型。

          我們看到,用指針引用結(jié)構(gòu)體變量成員的方式是:

          1. (*指針變量名).成員名

          2. 指針變量名->成員名

          它們是等價的?!?>”是“指向結(jié)構(gòu)體成員運算符”,它的優(yōu)先級同結(jié)構(gòu)體成員運算符“.”一樣高。

          注意點

          只有“指針變量名”后面才能加“->”,千萬不要在成員名后面加“->”。綜上所述,以下 3 種形式是等價的:

          1. 結(jié)構(gòu)體變量.成員名。

          2. (*指針變量).成員名。

          3. 指針變量->成員名。

          其中第 3 種方式很重要,通常都是使用這種方式,另外兩種方式用得不多。后面講鏈表的時候用的也都是第 3 種方式。

          尾言

          專欄作業(yè):定義結(jié)構(gòu)體,描述以下表格數(shù)據(jù)。

          不要否定你的過去,也不要用過去牽扯你的未來。不是因為有希望才去努力,而是努力了,才能看到希望。


          瀏覽 61
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  神马午夜1 | 91人妻无码成人精品一区91 | 大尺度爱爱视频 | 亚洲无码电影网 | 国产精品久久77777免费影视 |