?? 42.htm
字號:
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=gb_2312-80">
<meta name="Author" content="wdg">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>網上學堂 --> C語言編程寶典之一 -->結 構(struct)</title>
</head>
<body>
<p> </p>
<div align="center"><center>
<table border="1" cellpadding="4" width="640"
bordercolordark="#FFFFFF" bordercolorlight="#FFFFFF">
<tr>
<td bgcolor="#FFE6B0" bordercolor="#8080FF" class="p9"><font
color="#BB0000">導航條:--></font> <a
href="../../index.html">網上學堂</a> --> <a
href="../tcindex.htm"><font face="宋體">C</font>語言編程寶典之一</a>
-->結
構(struct)</td>
</tr>
<tr>
<td bordercolor="#8080FF" class="p9">
結構是由基本數據類型構成的、并用一個標識符來命名的各種變量的組合。
<br>
結構中可以使用不同的數據類型。 <p>
1. 結構說明和結構變量定義 <br>
在Turbo C中,
結構也是一種數據類型, 可以使用結構變量,
因此, 象其它 <br>
類型的變量一樣,
在使用結構變量時要先對其定義。 <br>
定義結構變量的一般格式為: <br>
struct 結構名 <br>
{ <br>
類型 變量名; <br>
類型 變量名; <br>
... <br>
} 結構變量; <br>
結構名是結構的標識符不是變量名。 <br>
類型為第二節中所講述的五種數據類型(整型、浮點型、字符型、
指針型和 <br>
無值型)。 <br>
構成結構的每一個類型變量稱為結構成員,
它象數組的元素一樣, 但數組中 <br>
元素是以下標來訪問的,
而結構是按變量名字來訪問成員的。 <br>
下面舉一個例子來說明怎樣定義結構變量。
<br>
struct string <br>
{ <br>
char name[8]; <br>
int age; <br>
char sex[2]; <br>
char depart[20]; <br>
float wage1, wage2, wage3, wage4, wage5; <br>
} person; <br>
這個例子定義了一個結構名為string的結構變量person,
如果省略變量名 <br>
person,
則變成對結構的說明。用已說明的結構名也可定義結構變量。這樣定義
<br>
時上例變成: <br>
struct string <br>
{ <br>
char name[8]; <br>
int age; <br>
char sex[2]; <br>
char depart[20]; <br>
float wage1, wage2, wage3, wage4, wage5; <br>
}; <br>
struct string person; <br>
如果需要定義多個具有相同形式的結構變量時用這種方法比較方便,
它先作 <br>
結構說明, 再用結構名來定義變量。 <br>
例如: <br>
struct string Tianyr, Liuqi,
...; <br>
如果省略結構名,
則稱之為無名結構,
這種情況常常出現在函數內部, 用這 <br>
種結構時前面的例子變成: <br>
struct <br>
{ <br>
char name[8]; <br>
int age; <br>
char sex[2]; <br>
char depart[20]; <br>
float wage1, wage2, wage3, wage4, wage5; <br>
} Tianyr, Liuqi; </p>
<p> 2. 結構變量的使用 <br>
結構是一個新的數據類型,
因此結構變量也可以象其它類型的變量一樣賦值、
<br>
運算,
不同的是結構變量以成員作為基本變量。 <br>
結構成員的表示方式為: <br>
結構變量.成員名 <br>
如果將"結構變量.成員名"看成一個整體,
則這個整體的數據類型與結構中 <br>
該成員的數據類型相同,
這樣就可象前面所講的變量那樣使用。 <br>
下面這個例子定義了一個結構變量,
其中每個成員都從鍵盤接收數據, 然后 <br>
對結構中的浮點數求和, 并顯示運算結果,
同時將數據以文本方式存入一個名為 <br>
wage.dat的磁盤文件中。請注意這個例子中不同結構成員的訪問。
<br>
例3: <br>
#include <stdio.h> <br>
main() <br>
{ <br>
struct{
/*定義一個結構變量*/ <br>
char name[8]; <br>
int age; <br>
char sex[2]; <br>
char depart[20]; <br>
float wage1, wage2, wage3, wage4, wage5; <br>
}a; <br>
FILE *fp; <br>
float wage; <br>
char c='Y'; <br>
fp=fopen("wage.dat", "w");
/*創建一個文件只寫*/ <br>
while(c=='Y'||c=='y')
/*判斷是否繼續循環*/ <br>
{ <br>
printf("\nName:"); <br>
scanf("%s", a.name); /*輸入姓名*/
<br>
printf("Age:"); <br>
scanf("%d", &a.wage); /*輸入年齡*/
<br>
printf("Sex:"); <br>
scanf("%d", a.sex); <br>
printf("Dept:"); <br>
scanf("%s", a.depart); <br>
printf("Wage1:"); <br>
scanf("%f", &a.wage1); /*輸入工資*/
<br>
printf("Wage2:"); <br>
scanf("%f", &a.wage2); <br>
printf("Wage3:"); <br>
scanf("%f", &a.wage3); <br>
printf("Wage4:"); <br>
scanf("%f", &a.wage4); <br>
printf("Wage5:"); <br>
scanf("%f", &a.wage5); <br>
wage=a.wage1+a.wage2+a.wage3+a.wage4+a.wage5; <br>
printf("The sum of wage is %6.2f\n", wage);/*顯示結果*/
<br>
fprintf(fp, "%10s%4d%4s%30s%10.2f\n", /*結果寫入文件*/
<br>
a.name, a.age, a.sex, a.depart, wage); <br>
while(1) <br>
{ <br>
printf("Continue?<Y/N>"); <br>
c=getche(); <br>
if(c=='Y'||c=='y'||c=='N'||c=='n') <br>
break; <br>
} <br>
} <br>
fclose(fp); <br>
} </p>
<p> 3. 結構數組和結構指針 <br>
結構是一種新的數據類型,
同樣可以有結構數組和結構指針。 <br>
一、結構數組 <br>
結構數組就是具有相同結構類型的變量集合。假如要定義一個班級40個同學
<br>
的姓名、性別、年齡和住址,
可以定義成一個結構數組。如下所示: <br>
struct{ <br>
char name[8]; <br>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -