<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 7.C語言指向結構體變量的指針 一個指針變量當用來指向一個結構變量時,稱之為結構指針變量。結構指針變量中的值是所指向的結構變量的首地址。通過結構指針即可訪問該結構變量,這與數組指針和函數指針的情況是相同的。 結構指針變量說明的一般形式為: ? ? struct ?結構名 ?*結構指針變量名 例如,在前面的例題中定義了stu這個結構,如要說明一個指向stu的指針變量pstu,可寫為: ? ? struct stu *pstu; 當然也可在定義stu結構時同時說明pstu。與前面討論的各類指針變量相同,結構指針變量也必須要先賦值后才能使用。 賦值是把結構變量的首地址賦予該指針變量,不能把結構名賦予該指針變量。如果boy是被說明為stu類型的結構變量,則: ? ? pstu=&boy 是正確的,而: ? ? pstu=&stu 是錯誤的。 結構名和結構變量是兩個不同的概念,不能混淆。結構名只能表示一個結構形式,編譯系統并不對它分配內存空間。只有當某變量被說明為這種類型的結構時,才對該變量分配存儲空間。因此上面&stu這種寫法是錯誤的,不可能去取一個結構名的首地址。有了結構指針變量,就能更方便地訪問結構變量的各個成員。 其訪問的一般形式為: ? ? (*結構指針變量).成員名 或為: ? ? 結構指針變量->成員名 例如: ? ? (*pstu).num 或者: ? ? pstu->num 應該注意(*pstu)兩側的括號不可少,因為成員符“.”的優先級高于“*”。如去掉括號寫作*pstu.num則等效于*(pstu.num),這樣,意義就完全不對了。下面通過例子來說明結構指針變量的具體說明和 使用方法。 【例11-5】 ~~~ struct stu{ int num; char *name; char sex; float score; } boy1={102,"Zhang ping",'M',78.5},*pstu; main(){ pstu=&boy1; printf("Number=%d\nName=%s\n",boy1.num,boy1.name); printf("Sex=%c\nScore=%f\n\n",boy1.sex,boy1.score); printf("Number=%d\nName=%s\n",(*pstu).num,(*pstu).name); printf("Sex=%c\nScore=%f\n\n",(*pstu).sex,(*pstu).score); printf("Number=%d\nName=%s\n",pstu->num,pstu->name); printf("Sex=%c\nScore=%f\n\n",pstu->sex,pstu->score); } ~~~ 本例程序定義了一個結構stu,定義了stu類型結構變量boy1并作了初始化賦值,還定義了一個指向stu類型結構的指針變量pstu。在main函數中,pstu被賦予boy1的地址,因此pstu指向boy1。然后在printf語句內用三種形式輸出boy1的各個成員值。從運行結果可以看出: ? ? 結構變量.成員名 ? ? (*結構指針變量).成員名 ? ? 結構指針變量->成員名 這三種用于表示結構成員的形式是完全等效的。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看