周全懂得構造體、結合體和列舉類型。本站提示廣大學習愛好者:(周全懂得構造體、結合體和列舉類型)文章只能為提供參考,不一定能成為您想要的結果。以下是周全懂得構造體、結合體和列舉類型正文
一. 構造體:
1. 界說構造體類型:
struct 構造體
{
隨意率性類型 隨意率性變量;
隨意率性類型 隨意率性變量;
……
};
留意:這不是界說變量,而是自界說一品種型罷了。
如
struct student
{
char name[10];//先生姓名
int height;//先生身高
bool sex;//先生性別 假定0表現女,1表現男。
};//此處罰號不克不及少。
2. 界說構造體變量。
類型界說好今後,則可以界說該類型的變量。
界說構造體變量:
struct student a,b;// struct可以省略。
可以在界說構造體變量的時刻賦值。
如student a={”liudehua”,172,1},b={“lixiaolong”,172,1};
也能夠在界說構造體變量今後賦值,但留意不克不及再用{}。
如:
student a,b;
a={”liudehua”,172,1},b={“lixiaolong”,172,1};//這是毛病的。
而應當是:
strcpy(a.name,”liudehua”);
a.height=172;
a.sex=1;
3.可以在界說構造體類型的時刻同時界說構造體變量並賦值。
struct student
{
char name[10];//先生姓名
int height;//先生身高
bool sex;//先生性別 假定0表現女,1表現男。
} a={”liudehua”,172,1},b={“lixiaolong”,172,1};
4.拜訪構造體:
拜訪構造體成員要用直接成員運算符“.”或直接成員運算符“->”。
student a={”liudehua”,172,1};
cout<<a.name<<a.height<<a.sex;
student *p=&a;
cout<<p->name<<p->height<<p->sex;
關於構造體變量,拜訪個中的成員采用“構造體變量.成員”的情勢;而關於構造體指針,拜訪它所指向的構造體變量中的成員,則采用“構造體指針->成員”情勢。
二.結合體
結合體也是一種自界說的復合類型,它可以包括多個分歧類型的變量。這些變量在內存傍邊共用一段空間。這段空間的size就是各變量中size最年夜的誰人變量。
1界說結合體類型:
union myunion
{int num1;
Double num2;
Float num3;
};
界說了一個結合體類型myunion。
myunion a,b;//界說了兩個myunion型變量。
也能夠在界說結合體類型的時刻界說結合體變量。
如:
union myunion
{int num1;
Double num2;
Float num3;
}a,b;
a占用的空間有多年夜呢?
Sizeof(a)成果即為8,即myunion占用8個字節,和double型變量雷同。
留意:任一時辰,只能拜訪構造體外面的一個變量。
a.num1=2;
a.num2=3.154;
myunion *p;
p=&a;
p->num3=5.6;
三.列舉類型
1.列舉類型的界說:
列舉類型也是一種自界說的復合類型。不外,列舉類型中的成員都是常量。
如
enum color
{
red,
green,
blue,
white,
black
};
列舉類型中的成員默許值為從0開端,順次序遞增。此時red==1,green為2,blue為3,white為4,black為5.
也能夠轉變起默許值。
如
enum color
{
red=1,
green=3,
blue=5,
white,
black
};
沒有初始化的列舉類型成員的值將在它後面的成員基本上遞增。
所以,white的值為6,而black的值為7.
2.界說列舉變量:
color a1,a2;
3.給列舉變量賦值:
a1=red;
a2=blue;
cout<<a1<<a2;//輸入成果是15
固然列舉常量的值整數,然則不克不及直接將整數值賦給列舉變量。
如
a1=1;//這是纰謬的。由於類型不婚配。一個是整型,一個是列舉類型。
a1=(color)1;//准確
列舉變量的size是一個整數的年夜小。
以上這篇周全懂得構造體、結合體和列舉類型就是小編分享給年夜家的全體內容了,願望能給年夜家一個參考,也願望年夜家多多支撐。