C++基本数据类型(枚举共用体)

Posted haoming Hu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++基本数据类型(枚举共用体)相关的知识,希望对你有一定的参考价值。

基本数据类型

char1 个字节-128 到 127 或者 0 到 255
unsigned char1 个字节0 到 255
signed char1 个字节-128 到 127
int4 个字节-2147483648 到 2147483647
unsigned int4 个字节0 到 4294967295
signed int4 个字节-2147483648 到 2147483647
short int2 个字节-32768 到 32767
unsigned short intRange0 到 65,535
signed short intRange-32768 到 32767
long int4 个字节-2,147,483,647 到 2,147,483,647
signed long int4 个字节与 long int 相同
unsigned long int4 个字节0 到 4,294,967,295
float4 个字节+/- 3.4e +/- 38 (~7 个数字)
double8 个字节+/- 1.7e +/- 308 (~15 个数字)
long double8 个字节+/- 1.7e +/- 308 (~15 个数字)
wchar_t2 或 4 个字节1 个宽字符

自定义数据类型

可以使用 typedef 为一个已有的类型取一个新的名字。下面是使用 typedef 定义一个新类型的语法:

typedef int mynewtype;

mynewtype data = 100;

枚举类型

枚举类型(enumeration)是 C++ 中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。定义格式:枚举类型的定义格式为:

enum <类型名> {<枚举常量表>};

格式说明:

  • 关键字enum——指明其后的标识符是一个枚举类型的名字。
  • 枚举常量表——由枚举常量构成。“枚举常量"或称"枚举成员”,是以标识符形式表示的整型量,表示枚举类型的取值。枚举常量表列出枚举类型的所有取值,各枚举常量之间以","间隔,且必须各不相同。取值类型与条件表达式相同。
#include<iostream>
#include<iomanip>
using namespace std;

int main(){
	enum color_set {red,yellow,blue,white,black}; //声明枚举类型color
    color_set color; 
	cout<< black <<endl;
	//按照顺序递增,默认是red=0,往后依次加一  结果输出4
}
#include<iostream>
#include<iomanip>
using namespace std;

int main(){
	enum color_set {red,yellow=2,blue,white,black}; //声明枚举类型color
    color_set color; 
	cout<< black <<endl;
	//手动在定义的时候赋值,那么后面的使用所赋的值作为基础进行递增,结果输出5
}
enum enum-name { list of names } var-list;

enum enum-name { list of names } ;
enum-name var-list
//两种方法是一样的

共同体

共用体(union)是一种数据格式,它能够存储不同的数据类型,但同时只能存储其中的一种类型,共用体的长度为其最大成员的长度。共用体的用途:当数据项使用两种或更多格式(但不会同时使用时) 。使几个不同类型的变量共同占用一段内存。

#include<iostream>
#include<iomanip>
using namespace std;

union myunion{
	int int_data;
	double double_data;
};

int main(){
	myunion myunion_obj;
	myunion_obj.int_data = 10;
	cout << myunion_obj.int_data << endl; //输出10
	myunion_obj.double_data = 15.545678;
	cout << myunion_obj.double_data << endl; //输出15.545678
	myunion_obj.int_data = 5;
	myunion_obj.double_data = 2000.5457877;
	cout << myunion_obj.int_data << endl;   // 这里输出是-487028676,
	cout << myunion_obj.double_data << endl; //这里输出是2000.5457877
    
    cout<<sizeof(myunion_obj)<<endl;   //输出8,说明这个共同体对象只计算最大长度成员作为整体的,也说明占用的是同一内存
}

以上是关于C++基本数据类型(枚举共用体)的主要内容,如果未能解决你的问题,请参考以下文章

c++自定义类型

C语言-枚举共用体

C语言-枚举共用体

共用体与枚举

结构体共用体和枚举类型

C语言第十二章:结构体共用体(联合体)枚举typedef