結構體中包含另一個結構體 結構體可以嵌套定義嗎?
結構體可以嵌套定義嗎?可以在類定義中嵌套結構。這里有幾個例子要解釋:對于聲明的(類外)結構類型,在類定義中嵌入結構變量沒有問題。也可以在類定義中直接定義結構類型,同時聲明結構變量,但此結構類型不能在類
結構體可以嵌套定義嗎?
可以在類定義中嵌套結構。這里有幾個例子要解釋:
對于聲明的(類外)結構類型,在類定義中嵌入結構變量沒有問題。
也可以在類定義中直接定義結構類型,同時聲明結構變量,但此結構類型不能在類之外使用。
不允許只定義類中的結構類型而不同時聲明結構變量(在結構定義中也是如此)。
在大多數情況下,我們建議將struct type的定義放在類之外,這樣定義的struct就可以在更多的地方(類之外)使用,而不會出現邏輯歧義和編譯錯誤。
事實上,類是C語言結構在C語言中的擴展。在C語言中,結構可以看作是最簡單的類“類嵌套”是C面向對象的一種應用技巧,用于接口封裝(隱藏)和成員共享。但是,它與嵌套結構關系不大。如果你感興趣,你可以讀相關的書。
此外,還有兩種形式的結構定義,一種帶有typedef關鍵字,另一種沒有typedef關鍵字。這兩個定義是不同的。簡而言之,typedef聲明了一個“變量類型”。沒有typedef,它直接聲明結構變量。具體應用差異請參考結構聲明相關書籍和章節(jié)。
C語言,如何在結構體中給嵌套的結構體賦值?
要為結構賦值,請先定義結構,然后分別為其成員賦值。例如,
#include<studio。H>
結構?學生
{
智力?Num
字符?Name[10
}
無效?Main()
{
結構?學生?S
printf(“輸入學號:n”)
scanf(%d”)&安培數)//Scanf assign to num member of struct
printf(“enter name:n”)
Scanf(“%s”,&安培名稱)
Printf(“輸入信息為:學號:%D,姓名::%sn”,s.num?,s.name)
}運行屏幕截圖: