结构体
c++中定义结构型变量, 可以省略struct关键字(C中经常会通过typedef定义一个类型别名 然后再去使用它定义变量, 以达到简化代码的目的)
struct XX
{....};
XX x
;
c++结构体中可以直接定义函数,谓之成员函数(方法)在成员函数中可以直接访问该结构体的成员变量,无需"." 或 "->"
#include <iostream>
using namespace std
;
struct Student
{
char name
[20];
int age
;
void who(void) {
cout
<< "我叫" << name
<< ",今年" << age
<< "岁" << endl
;
}
};
int main(void) {
Student s
= {"张三", 28};
s
.who();
return 0;
}
联合体
和C一样联合体中包含的若干个成员, 它们的内存是共享的, 使用它是为了节省内存C++ 中定义联合体, 可以省略union关键字
union XX
{....};
XX x
;
支持匿名联合
union {
....
};
#include <iostream>
#include <cstdio>
using namespace std
int main(void)
{
union {
unsigned int ui
;
unsigned char uc
[4];
}
ui
=0x12345678;
printf("0x%x\n", uc
[0]);
printf("0x%x\n", uc
[1]);
printf("0x%x\n", uc
[2]);
printf("0x%x\n", uc
[3]);
}
枚举
和C一样用枚举是为了提高代码的可读性C++ 中定义枚举类型变量, 可以省略enum关键字
enum XX
{.....};
XX x
;
C++中枚举是独立的数据类型, 不能当做整数类型数使用, 之前C中, 枚举可以理解为一个常数的列表, 或常数集和, 是可以当做一个整数类型数据使用的.
enum STATE
{SLEEP
, RUN
, STOP
};
STATE state
;
state
= 1;
state
= RUN
;
#include <iostream>
using namespace std
;
int main(void) {
enum Color
{RED
, BLUE
, YELLOW
};
cout
<< RED
<< ',' << BLUE
<< ',' << YELLOW
<< endl
;
Color c
;
c
= BLUE
;
cout
<< c
<< endl
;
return 0;
}