C語言結構體教程
引導語;結構體是由一系列具有相同類型或不同類型的數據構成的數據集合。以下是本站小編分享給大家的C語言結構體教程,歡迎閲讀!
一、結構説明和結構變量定義
在Turbo C中,結構也是一種數據類型,可以使用結構變量,因此,象其它類型的變量一樣, 在使用結構變量時要先對其定義。
定義結構變量的一般格式為:
struct 結構名
{
類型 變量名;
類型 變量名;
...
} 結構變量;
結構名是結構的標識符不是變量名。
類型為第二節中所講述的五種數據類型(整型、浮點型、字符型、指針型和無值型)。
構成結構的每一個類型變量稱為結構成員,它象數組的元素一樣,但數組中元素是以下標來訪問的,而結構是按變量名字來訪問成員的。
下面舉一個例子來説明怎樣定義結構變量。
struct string
{
char name[8];
int age;
char sex[4];
char depart[20];
float wage1,wage2,wage3;
}person;
這個例子定義了一個結構名為string的結構變量person,如果省略變量名person,則變成對結構的説明。用已説明的結構名也可定義結構變量。這樣定義時上例變成:
struct string
{
char name[8];
int age;
char sex[4];
char depart[20];
float wage1,wage2,wage3;
};
struct string person;
如果需要定義多個具有相同形式的結構變量時用這種方法比較方便,它先作結構説明,再用結構名來定義變量。
例如:
struct string Tianyr, Liuqi, ...;
如果省略結構名,則稱之為無名結構,這種情況常常出現在函數內部,用這種結構時前面的例子變成:
struct
{
char name[8];
int age;
char sex[4];
char depart[20];
float wage1,wage2,wage3;
} Tianyr, Liuqi;
二、結構變量的使用
結構是一個新的數據類型,因此結構變量也可以象其它類型的變量一樣賦值、運算,不同的是結構變量以成員作為基本變量。
結構成員的表示方式為:
結構變量.成員名
如果將結構變量.成員名看成一個整體,則這個整體的數據類型與結構中該成員的數據類型相同,這樣就可象前面所講的變量那樣使用。
下面這個例子定義了一個結構變量,其中每個成員都從鍵盤接收數據,然後對結構中的浮點數求和,並顯示運算結果。請注意這個例子中不同結構成員的訪問。
#include
main()
{
struct
{ /*定義一個結構變量*/
char name[8];
int age;
char sex[4];
char depart[20];
float wage1,wage2,wage3;
}a;
float wage;
char c='Y';
while(c=='Y'||c=='y') /*判斷是否繼續循環*/
{
printf(nName:);
scanf(%s, ); /*輸入姓名*/
printf(Age:);
scanf(%d, &); /*輸入年齡*/
printf(Sex:);
scanf(%s, );
printf(Dept:);
scanf(%s, rt);
printf(Wage1:);
scanf(%f, &1); /*輸入工資*/
printf(Wage2:);
scanf(%f, &2);
printf(Wage3:);
scanf(%f, &3);
wage=1+2+3;
printf(The sum of wage is %6.2fn, wage);
printf(Continue?);
c=getche();
}
}
-
C語言猴子吃桃問題
猴子第一天摘了若干個桃子,當即吃了一半,還不解饞,又多吃了一個;第二天,吃剩下的桃子的一半,還不過癮,又多吃了一個;以後每天都吃前一天剩下的一半多一個,到第10天想再吃時,只剩下一個桃子了。問第一天共摘了多少個桃子?分析:1)設x1為前一天桃子數,設x2為第二天桃子數,則:x...
-
關於C語言精選模擬練習題
C語言是一個有結構化程序設計、具有變量作用域(variablescope)以及遞歸功能的過程式語言。下面是小編為大家整理的關於C語言精選模擬練習題,歡迎參考~5:請編寫一個函數fun,它的功能是:比較兩個字符串的長度,(不得調用c語言提供的`求字符串長度的函數),函數返回較長...
-
在C語言中轉換時間的基本方法
本文主要介紹了在C語言中轉換時間的基本方法,分別是mktime()函數和localtime()函數的使用,供參考學習,感興趣的小夥伴們可以參考一下!想了解更多相關信息請持續關注我們應屆畢業生考試網!C語言mktime()函數:將時間轉換成經過的秒數頭文件:#include<time.h>定義函數:t...
-
C語言與JAVA的區別
很多人不明白C語言與C++和JAVE之間的區別,為此,為大家收集整理了下面的內容,歡迎閲讀!C語言C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語...