結構體的介紹
結構體是C++特有的一種資料型別,使用結構體可以在程式裡自己定義一個資料型別。
比如定義一個結構體,名字為Boy,現在我們就可以使用Boy Tom;
定義一個型別為Boy的變數Tom。
定義結構體時不僅要包含名稱,還要宣告這個結構體是怎樣組成的。以結構體Boy為例,一個Boy型別的變數可以包含一個字串,當做名稱,還可以定義int型別的變數當做這個Boy的年齡。
結構體的定義
結構體的定義可以定義在全域性,也可以定義在區域性。定義在函式內的結構體只能在函式里使用,在全域性的結構體可以在整個程式裡被使用。
下面是定義一個結構體的程式碼,名字叫Boy。
struct Boy;
接下來要往結構體裡新增兩個元素。
struct Boy{
std::string name;
int age;
};
上面定義的結構體Boy包含兩個元素name
和age
,現在我們可以用這個結構體定義變數了。
定義一個結構體變數的例項
定義一個結構體
結構體名稱[空格]結構體變數名稱[分號]
結構體中的元素是什麼完全由你制定。
訪問剛剛定義好的結構體變數
訪問結構體變數可麻煩呢!
還是這個結構體
struct Boy{
std::string name;
int age;
};
但是你不可以整個訪問結構體變數,你需要制定結構體的某一個元素去訪問。
如果你要輸出Tom的name元素,要這樣:
std::cout<<Tom.name;
如果要輸入也是這樣
std::cin>>Tom.name;
但是你不可以整個輸入
錯誤示範:
std::cin>>Tom;
結構體陣列
struct Boy{
std::string name;
int age;
};
這個結構體,如果你要使用它定義一個陣列,需要這樣做
Boy a[10000];
如果你要輸入元素,需要這樣做:
cin>>a[i].name>>a[i].age;
結構體初始化
初始化有兩類
第一種是從
struct Boy{
std::string name;
int age;
};
改成
struct Boy{
std::string name = "TOM";
int age=12;
};
這樣你每定義一個結構體後內容的話結構體變數的兩個元素就是你初始化時制定的值了
第二種是
struct Boy{
std::string name;
int age;
};
Boy a = {
"TOM",
"12
};
同理我們也可以
struct Boy{
std::string name;
int age;
};
Boy a;
a={
"TOM",
"12
};