發信人: ax.bbs@bbs.ee.nthu.edu.tw.
(athena), 信區: test
標 題: 星星流講座 0043
發信站: ☆清華電機☆ (Thu Jul 20 21:56:00 1995)
轉信站: star
星星流講座 0043 C 語言教室
第 7 講 之 1 使用者自定結構
Topic: Structures
現在來同各位討論有關使用者自定結構的課題。什麼是使用者自定
結構 (structure,以下簡稱結構) 呢?簡單的來說,它是依據使用
者的需求,由使用者自己定義的一種資料的記錄 (data record)。
比方說,我們想要製作一份通訊錄,那麼每一筆資料可能就包含了
姓名、地址和電話三個欄位,這個時候就可以用結構來表示:
struct record
{
char name[20];
char address[80];
char tel[20];
}; /* 注意這最後的分號 */
我們稱 record 為一種結構的型式 (structure type),而它所包含
的 name、address 以及 tel 為這種結構型式的元素 (member)。
結構在 C 語言中的宣告方法很簡單,就是:
struct 結構名稱
{
元素1;
....
} 結構變數1, 結構變數2, ... ;
結構可以是一個或多個相同或不同資料型態變數的集合,例如:
struct single
{
int only_one; /* 這時候 single 就相當於 int */
};
struct score
{
long id; /* 學號 */
char name[20]; /* 姓名 */
float grade; /* 分數 */
} studentA, studentB, studentC;
上例中 score 這個結構是用來登載學生的成績用的,而 studentA、
studentB 以及 studentC 就是屬於 score 這種類型的結構變數。
結構可以當做變數的資料型態,比方說我們如果要增加一個
studentD 的變數,這時候我們只需宣告:
struct score studentD;
就可以得到一個新的結構變數 studentD,它屬於 score 這種類型。
結構變數也可以在宣告的時候直接給定初值,例如:
struct point
{
int x;
int y;
};
struct point A = { 2, 3 };
可以在宣告 A 這個結構變數時就依序給定它內容裡各個變數
的初值,上例中就是給定 A 這個結構變數中的 x = 2, y = 3;。很顯
然地這樣子給定字串的初值會有危險,這我們在前面已經提到過了。
若是我們想要單獨地操作結構中的變數,像上例中 A 這個變數裡的 x
那該怎麼辦呢?你只要使用如:
A.x = 4;
這種型式,就可以自由地操作了。
結構裡的元素也可以是其他的結構,例如:
struct circle
{
struct point center;
int radius;
} cir;
這個時候如果要取用 cir 的圓心的 x 坐標要怎麼辦呢?你只需要使用
如:
cir.center.x = 4;
這種型式,就可以自由地操作了。
--
本文原作者為徐振家,原作刊載於星星神教總壇 ☆清華電機☆ test 板。
你可以以電子文件的形式將本文自由流傳於台灣學術網路,但必須包含此版權聲明。
原作者依中華民國著作權法之規定,享有本文之著作權,請勿抄襲以免觸法。
未經授權任何人不得以任何形式對本文做任何修改及商業上之應用。
其他網路的轉載或其他用途的應用,請先知會作者,並取得其同意。
對本文有任何疑問或意見請 mail 給
ax.bbs@bbs.ee.nthu.edu.tw,謝謝。