欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

C語言怎么鏈接兩個孤單的結(jié)構(gòu)體變量

本篇內(nèi)容介紹了“C語言怎么鏈接兩個孤單的結(jié)構(gòu)體變量”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)建站公司2013年成立,先為泰山等服務(wù)建站,泰山等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為泰山企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

首先我們需要知道的就是,結(jié)構(gòu)體指針是可以作為一個結(jié)構(gòu)體類型的內(nèi)部成員變量的。假設(shè)我們有一個student_t結(jié)構(gòu)類型,其內(nèi)部是可以包含一個用其本身定義的一個結(jié)構(gòu)體變量的。如圖1所示。

 C語言怎么鏈接兩個孤單的結(jié)構(gòu)體變量
圖1在定義結(jié)構(gòu)體時,加入一個其自身類型的結(jié)構(gòu)體指針

如圖1所示,我們在使用typedef定義結(jié)構(gòu)體存儲類型的時候,可以將結(jié)構(gòu)體的標簽選項保留下來。這個標簽在定義指向這種類型的結(jié)構(gòu)體指針的時候,可以和struct聯(lián)合起來定義。
好了,我們現(xiàn)在已經(jīng)定義好了一個student_t類型的結(jié)構(gòu)體了,這個結(jié)構(gòu)體有一個最顯著的特點,就是它的成員變量里面包含了一個可以指向它自己(student_t)類型的結(jié)構(gòu)體指針。
這里就有個假設(shè)了。假設(shè)小明和小麗是一個班上的學(xué)生,我們可以分別定義兩個結(jié)構(gòu)體變量用來存放他們的名字和年齡,如圖2所示。

C語言怎么鏈接兩個孤單的結(jié)構(gòu)體變量
圖2 打印小明和小麗的信息

現(xiàn)在我們可以再想一下,如果我們要建立起來一個關(guān)系,即坐在小明后面的那個同學(xué),她的名字叫做小麗,換句話說,就是能否找到一種關(guān)系,將小麗的信息通過小明這個同學(xué)去找到。答案是可以的,我們看到,用來描述小明的結(jié)構(gòu)體里面還包含了一個結(jié)構(gòu)體指針*next,由于用于描述小明和小麗的結(jié)構(gòu)體類型是完全一致的,因此*next指針是可以指向小麗結(jié)構(gòu)體的。如圖3所示。

C語言怎么鏈接兩個孤單的結(jié)構(gòu)體變量
圖3 next結(jié)構(gòu)體指針指向另一個結(jié)構(gòu)體變量

而這個指針的指向操作,我們可以使用代碼來實現(xiàn),只需要將XiaoLi結(jié)構(gòu)體的首地址賦值給Xiaoming.next即可。這樣操作之后,Xiaoming的next指針就指向了XiaoLi了,此時我們可以很簡單地通過小明去查詢到XiaoLi的相關(guān)信息。這里需要注意的是,Xiaoming.next是一個結(jié)構(gòu)體指針,因此在使用Xiaoming結(jié)構(gòu)體查詢XiaoLi的信息時,需要使用Xiaoming.next的指向操作,即Xiaoming.next->name,和Xiaoming.next->age。具體代碼如圖4所示。

C語言怎么鏈接兩個孤單的結(jié)構(gòu)體變量
圖4 利用next指針打印后一個結(jié)構(gòu)體變量的信息

現(xiàn)在我們再將這些信息擴大一些,假設(shè)Xiaoming和XiaoLi這個小組里面又加入了兩個小伙伴,分別叫做MaLi和JieKe。那我們也可以使用同樣的方式將MaLi和JieKe的信息存儲下來,并且使用next指針將他們的信息一個一個地“串聯(lián)起來”。如圖5所示。

C語言怎么鏈接兩個孤單的結(jié)構(gòu)體變量
圖5 利用小明打印出所有學(xué)生的信息

上述的printf函數(shù)在寫起程序來還是比較麻煩的,我們需要為這四個同學(xué)寫出四個不同的printf函數(shù),如果學(xué)生的數(shù)量到了100個,還要寫100個printf?那么有沒有辦法只寫出一個printf,就能將整個這種連接到一起的結(jié)構(gòu)體的信息都打印出來呢?答案又是肯定的,我們再來反觀一下現(xiàn)在這幾個結(jié)構(gòu)體的關(guān)系。如圖6所示。

C語言怎么鏈接兩個孤單的結(jié)構(gòu)體變量
圖6四個結(jié)構(gòu)體之間的關(guān)系

如果要可以滿足只用一句printf就可以將這四個或者以后的多個結(jié)構(gòu)體的信息全部打印出來,我們聯(lián)想到學(xué)習(xí)數(shù)組的時候,有一種被稱為數(shù)組遍歷的操作與之類似。我們仔細觀察這幾個結(jié)構(gòu)體,我們很容易找到一個判斷條件,最后一個結(jié)構(gòu)體的next指針勢必會指向NULL。因此利用這一點,我們可以定義一個student_t的結(jié)構(gòu)體指針seek,先指向第一個結(jié)構(gòu)體變量,輸出完成后,指向第二個結(jié)構(gòu)體變量,即將第一個的next指針賦給這個seek指針,以此類推。當(dāng)最后一個next賦給seek指針的時候,seek指針的值勢必為NULL,因此可以退出整個循環(huán)。具體代碼如圖7所示。

C語言怎么鏈接兩個孤單的結(jié)構(gòu)體變量
圖7 seek指針變量這四個結(jié)構(gòu)體變量

“C語言怎么鏈接兩個孤單的結(jié)構(gòu)體變量”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

網(wǎng)站名稱:C語言怎么鏈接兩個孤單的結(jié)構(gòu)體變量
鏈接分享:http://chinadenli.net/article0/gsgsoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站網(wǎng)站設(shè)計營銷型網(wǎng)站建設(shè)小程序開發(fā)軟件開發(fā)網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司