您的位置:首页 > 编程语言 > C语言/C++

C++、 C 中的结构体、联合和枚举 异同

2015-08-04 08:35 459 查看
C++结构体

c++定义结构体的语法 和 c 相同

不同点:

1.在表达结构体类型时 c++可以省略struct 关键字。
2.c++结构体中可以定义函数。


#include <iostream>
using namespace std;
struct Name
{
string dsanmux;
void  show()//结构体中可以定义函数
{
cout << dsanmux << endl;
}
};
int main()
{
Name name;  //省略struct
name.show();
}


联合 union

定义联合体的语法 和 c 完全相同

不同点:

1.表达联合类型时 可以省略 union
2.c++支持匿名联合


#include <iostream>
using namespace std;
int main()
{
union
{
int  x;
char data[4];
};
x=0x41424344;      //c++支持匿名联合
cout << x << endl;
for(int i=0;i<4;i++)
{
cout << data[i] << ' ';
}
cout << endl;
}


枚举 enum

定义枚举的语法 和 c 完全相同

不同点:

表达类型时 可以省略enum

枚举变量只能赋值 枚举值,不能赋值整数这里体现了c++的类型检查严格。

#include <iostream>
using namespace std;
enum  Dire{UP,DOWN,LEFT,RIGHT};
int main()
{
Dire dir;
dir = LEFT;
int  x=321;
x = dir;
cout << x << endl;
x=3;
//这里体现了c++ 的类型检查严格
//dir = x  枚举变量只能赋值 枚举值,不能赋值整数
if(3 == x )
{
dir = RIGHT;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: