📄 00000001.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: <A HREF="mailto:ax.bbs@bbs.ee.nthu.edu.tw.">ax.bbs@bbs.ee.nthu.edu.tw.</A> (athena), 信区: test <BR>标 题: 星星流讲座 0043 <BR>发信站: ☆清华电机☆ (Thu Jul 20 21:56:00 1995) <BR> <BR> <BR>第 7 讲 之 1 使用者自定结构 <BR> Topic: Structures <BR> <BR>现在来同各位讨论有关使用者自定结构的课题。什麽是使用者自定 <BR>结构 (structure,以下简称结构) 呢?简单的来说,它是依据使用 <BR>者的需求,由使用者自己定义的一种资料的记录 (data record)。 <BR>比方说,我们想要制作一份通讯录,那麽每一笔资料可能就包含了 <BR>姓名、地址和电话三个栏位,这个时候就可以用结构来表示: <BR> <BR> struct record <BR> { <BR> char name[20]; <BR> char address[80]; <BR> char tel[20]; <BR> }; /* 注意这最後的分号 */ <BR> <BR>我们称 record 为一种结构的型式 (structure type),而它所包含 <BR>的 name、address 以及 tel 为这种结构型式的元素 (member)。 <BR> <BR>结构在 C 语言中的宣告方法很简单,就是: <BR> <BR> struct 结构名称 <BR> { <BR> 元素1; <BR> .... <BR> } 结构变数1, 结构变数2, ... ; <BR> <BR>结构可以是一个或多个相同或不同资料型态变数的集合,例如: <BR> <BR> struct single <BR> { <BR> int only_one; /* 这时候 single 就相当於 int */ <BR> }; <BR> <BR> struct score <BR> { <BR> long id; /* 学号 */ <BR> char name[20]; /* 姓名 */ <BR> float grade; /* 分数 */ <BR> } studentA, studentB, studentC; <BR> <BR>上例中 score 这个结构是用来登载学生的成绩用的,而 studentA、 <BR>studentB 以及 studentC 就是属於 score 这种类型的结构变数。 <BR>结构可以当做变数的资料型态,比方说我们如果要增加一个 <BR>studentD 的变数,这时候我们只需宣告: <BR> <BR> struct score studentD; <BR> <BR>就可以得到一个新的结构变数 studentD,它属於 score 这种类型。 <BR> <BR>结构变数也可以在宣告的时候直接给定初值,例如: <BR> <BR> struct point <BR> { <BR> int x; <BR> int y; <BR> }; <BR> <BR> struct point A = { 2, 3 }; <BR> <BR>可以在宣告 A 这个结构变数时就依序结定它内容里各个变数 <BR>的初值,上例中就是给定 A 这个结构变数中的 x = 2, y = 3;。很显 <BR>然地这样子给定字串的初值会有危险,这我们在前面已经提到过了。 <BR> <BR>若是我们想要单独地操作结构中的变数,像上例中 A 这个变数里的 x <BR>那该怎麽办呢?你只要使用如: <BR> <BR> A.x = 4; <BR> <BR>这种型式,就可以自由地操作了。 <BR> <BR>结构里的元素也可以是其他的结构,例如: <BR> <BR> struct circle <BR> { <BR> struct point center; <BR> int radius; <BR> } cir; <BR> <BR>这个时候如果要取用 cir 的圆心的 x 坐标要怎麽办呢?你只需要使用 <BR>如: <BR> <BR> cir.center.x = 4; <BR> <BR>这种型式,就可以自由地操作了。 <BR> <BR>-- <BR>本文原作者为徐振家,原作刊载於星星神教总坛 ☆清华电机☆ test 板。 <BR>你可以以电子文件的形式将本文自由流传於台湾学术网路,但必须包含此版权声明。 <BR>原作者依中华民国著作权法之规定,享有本文之著作权,请勿抄袭以免触法。 <BR>未经授权任何人不得以任何形式对本文做任何修改及商业上之应用。 <BR>其他网路的转载或其他用途的应用,请先知会作者,并取得其同意。 <BR>对本文有任何疑问或意见请 mail 给 <A HREF="mailto:ax.bbs@bbs.ee.nthu.edu.tw,谢谢。">ax.bbs@bbs.ee.nthu.edu.tw,谢谢。</A> <BR> <BR> <BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -