我們知道定義好一個結構體類型後,可以将其看作是與int,char和float等數據類型一樣的一個新的數據類型,其中并無具體數據,系統對之也沒有分配實際的内存空間單元。為了能夠在程序中使用結構體數據類型,應當定義結構體類型變量,并在其中存放具體數據。
結構體類型變量的定義定義結構體類型變量是用已經定義好的某個結構體類型未完成。結構體變量的定義形式有如下3種。
1)先定義結構體類型,再定義結構體類型變量。例如:
以上程序段定義了名為employee的結構體類型,然後将a1,a2兩個變量定義成employee結構體類型。結構體類型變量的定義形式為:
struct 結構體名 結構體變量名表列;
例如,struct employee a1,a2;
定義a1,a2為struct employee類型的變量,它們具有了struct employee類型的結構。在定義了結構體變量之後,系統會為之分配内存單元,結構體變量的每個成員在計算機中占有不同且連續的内存單元,每個結構體變量所占内存大小為各個成員項所占内存大小之和。
例如,a1和a2在内存中各占29個字節(2 20 1 2 4=29)。
2)定義結構體類型的同時定義結構體變量。例如:
定義employee結構體類型的同時,定義了屬于該類型的兩個結構體變量a1和a2。用這種方法進行結構體類型變量定義的一般形式為:
3)直接定義結構體類型變量。
結構體類型名一般在後面的程序中不會出現,就像除了變量定義之外,一般不會在程序中引用int一樣。所以,定義結構體變量時,可以将結構體類型名省略掉。其一般形式為:
例如:
結構體的成員也可以定義成另一個結構體類型的變量。例如:
說明
結構體類型與結構體類型變量是不同的概念。結構體類型是一種數據類型,系統不對其分配存儲空間;結構體類型變量才是實實在在的變量,系統會為其分配存儲空間,可以進行賦值,存取或運算。
如有裨益,吾之興也。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!