什麼是結構
這個問題由下面一個實例引入
像這種檢索信息如果用普通的函數定義,無論是查找還是錄入都會很麻煩,而且它裏面還會涉及到很多的的數據類型
例如 :
ID和手機號要用int類型,姓名 要用 char 類型而且這還是隻有三個附屬,如果再加入QQ、博客豈不是更多
於是有人就考慮有沒有一種結構直接可以一次性輸入這幾個附屬信息,一個一個輸入太麻煩
於是結構就產生了
結構可看作一種數據類型因爲它可以直接定義變量,我們一步一步來看
結構的定義
定義結構類型的說明語句形式如下;
struct 標識符
{ 類型 成員1;
類型 成員2;
...
類型 成員n;
};
由上面可以看出定義結構類型需要用到關鍵字struct
而標識符是你決定給新的數據類型起的名字
如下面定義一個叫Contact的數據類型
struct Contact
{
int id;
char name[16]; //定義成員name
char phone[11]; //定義成員phone
};
再如下面定義一個叫Employee的結構類型
struct Employee
{
char name[10]; //定義成員name
long code; //定義成員code
double salary; //定義成員salary
char *address; //定義成員 address
char phone[11]; //定義成員phone
};
由上面看出結構中成員類型是可以任意的、不同的
而一般定義的標識符首字母大寫
結構體的定義類似於函數的定義,不同的是最後 } 後面多了一個 ;
定義之後就是引用了
說明一下:“要訪問結構體的成員,就要在結構變量後面加.再加成員名”
表示****的####
如:today.temp
#include<iostream>
using namespace std;
struct Weather //定義結構體名字
{ double temp; //定義溫度
double wind; //定義風速
};
int main()
{ Weather today; //用新結構類型定義變量
today.temp=10.5; //訪問today的temp並賦值
today.wind=3.1; //訪問today的wind並賦值
cout<<"Temp="<<today.temp<<endl;
cout<<"Wind="<<today.wind<<endl;
}
運行結果如下
由上面看出新結構類型Weather直接定義了today這個變量所以說是一種新的數據類型,因爲只有數據類型可以定義變量
既然說是一種結構類型那麼結構類型能幹的它當然也能幹
如下面用定義的Contact來定義變量、數組、返回值……
結構初始化
struct employee
{ char name[10];
int id;
char address[10];
char phone[11];
}worker1={"Wangming",99287171,"guangzhou","13245681901"};
初始化賦值按次序、兩成員用逗號隔開,用花括號
不得不說結構的產生確實方便了不少,以上就是小白對結構體的第一印象,如有不妥,歡迎指正,溜了溜了……