我是靠谱客的博主 专注眼神,最近开发中收集的这篇文章主要介绍C++数据类型一、基本的内置类型二、typedef声明三、枚举类型,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

一、基本的内置类型

二、typedef声明

三、枚举类型


一、基本的内置类型

C++ 为程序员提供了种类丰富的内置数据类型和用户自定义的数据类型。下表列出了七种基本的 C++ 数据类型:

类型关键字
布尔型bool
字符型char
整型int
浮点型float
双浮点型double
无类型void
宽字符型wchar_t

其实 wchar_t 是这样来的:

 typedef short int wchar_t;

所以 wchar_t 实际上的空间是和 short int 一样。

一些基本类型可以使用一个或多个类型修饰符进行修饰:

  • signed
  • unsigned
  • short
  • long

下表显示了各种变量类型在内存中存储值时需要占用的内存,以及该类型的变量所能存储的最大值和最小值。

注意:不同系统会有所差异,一字节为 8 位。

注意:默认情况下,int、short、long都是带符号的,即 signed。

注意:long int 8 个字节,int 都是 4 个字节,早期的 C 编译器定义了 long int 占用 4 个字节,int 占用 2 个字节,新版的 C/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 int2 个字节0 到 65,535
signed short int2 个字节-32768 到 32767
long int8 个字节-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
signed long int8 个字节-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
unsigned long int8 个字节0 到 18,446,744,073,709,551,615
float4 个字节精度型占4个字节(32位)内存空间,+/- 3.4e +/- 38 (~7 个数字)
double8 个字节双精度型占8 个字节(64位)内存空间,+/- 1.7e +/- 308 (~15 个数字)
long double16 个字节长双精度型 16 个字节(128位)内存空间,可提供18-19位有效数字。
wchar_t2 或 4 个字节1 个宽字符
#include<iostream>  
#include <limits>
 
using namespace std;  
  
int main()  
{  
    cout << "type: tt" << "************size**************"<< endl;  
    cout << "bool: tt" << "所占字节数:" << sizeof(bool);  
    cout << "t最大值:" << (numeric_limits<bool>::max)();  
    cout << "tt最小值:" << (numeric_limits<bool>::min)() << endl;  
    cout << "char: tt" << "所占字节数:" << sizeof(char);  
    cout << "t最大值:" << (numeric_limits<char>::max)();  
    cout << "tt最小值:" << (numeric_limits<char>::min)() << endl;  
    cout << "signed char: t" << "所占字节数:" << sizeof(signed char);  
    cout << "t最大值:" << (numeric_limits<signed char>::max)();  
    cout << "tt最小值:" << (numeric_limits<signed char>::min)() << endl;  
    cout << "unsigned char: t" << "所占字节数:" << sizeof(unsigned char);  
    cout << "t最大值:" << (numeric_limits<unsigned char>::max)();  
    cout << "tt最小值:" << (numeric_limits<unsigned char>::min)() << endl;  
    cout << "wchar_t: t" << "所占字节数:" << sizeof(wchar_t);  
    cout << "t最大值:" << (numeric_limits<wchar_t>::max)();  
    cout << "tt最小值:" << (numeric_limits<wchar_t>::min)() << endl;  
    cout << "short: tt" << "所占字节数:" << sizeof(short);  
    cout << "t最大值:" << (numeric_limits<short>::max)();  
    cout << "tt最小值:" << (numeric_limits<short>::min)() << endl;  
    cout << "int: tt" << "所占字节数:" << sizeof(int);  
    cout << "t最大值:" << (numeric_limits<int>::max)();  
    cout << "t最小值:" << (numeric_limits<int>::min)() << endl;  
    cout << "unsigned: t" << "所占字节数:" << sizeof(unsigned);  
    cout << "t最大值:" << (numeric_limits<unsigned>::max)();  
    cout << "t最小值:" << (numeric_limits<unsigned>::min)() << endl;  
    cout << "long: tt" << "所占字节数:" << sizeof(long);  
    cout << "t最大值:" << (numeric_limits<long>::max)();  
    cout << "t最小值:" << (numeric_limits<long>::min)() << endl;  
    cout << "unsigned long: t" << "所占字节数:" << sizeof(unsigned long);  
    cout << "t最大值:" << (numeric_limits<unsigned long>::max)();  
    cout << "t最小值:" << (numeric_limits<unsigned long>::min)() << endl;  
    cout << "double: t" << "所占字节数:" << sizeof(double);  
    cout << "t最大值:" << (numeric_limits<double>::max)();  
    cout << "t最小值:" << (numeric_limits<double>::min)() << endl;  
    cout << "long double: t" << "所占字节数:" << sizeof(long double);  
    cout << "t最大值:" << (numeric_limits<long double>::max)();  
    cout << "t最小值:" << (numeric_limits<long double>::min)() << endl;  
    cout << "float: tt" << "所占字节数:" << sizeof(float);  
    cout << "t最大值:" << (numeric_limits<float>::max)();  
    cout << "t最小值:" << (numeric_limits<float>::min)() << endl;  
    cout << "size_t: t" << "所占字节数:" << sizeof(size_t);  
    cout << "t最大值:" << (numeric_limits<size_t>::max)();  
    cout << "t最小值:" << (numeric_limits<size_t>::min)() << endl;  
    cout << "string: t" << "所占字节数:" << sizeof(string) << endl;  
    // << "t最大值:" << (numeric_limits<string>::max)() << "t最小值:" << (numeric_limits<string>::min)() << endl;  
    cout << "type: tt" << "************size**************"<< endl;  
    return 0;  
}

type:         ************size**************
bool:         所占字节数:1    最大值:1        最小值:0
char:         所占字节数:1    最大值:        最小值:?
signed char:     所占字节数:1    最大值:        最小值:?
unsigned char:     所占字节数:1    最大值:?        最小值:
wchar_t:     所占字节数:4    最大值:2147483647        最小值:-2147483648
short:         所占字节数:2    最大值:32767        最小值:-32768
int:         所占字节数:4    最大值:2147483647    最小值:-2147483648
unsigned:     所占字节数:4    最大值:4294967295    最小值:0
long:         所占字节数:8    最大值:9223372036854775807    最小值:-9223372036854775808
unsigned long:     所占字节数:8    最大值:18446744073709551615    最小值:0
double:     所占字节数:8    最大值:1.79769e+308    最小值:2.22507e-308
long double:     所占字节数:16    最大值:1.18973e+4932    最小值:3.3621e-4932
float:         所占字节数:4    最大值:3.40282e+38    最小值:1.17549e-38
size_t:     所占字节数:8    最大值:18446744073709551615    最小值:0
string:     所占字节数:24
type:         ************size**************

二、typedef声明

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

typedef type newname; 

 例如,下面的语句会告诉编译器,feet 是 int 的另一个名称:

typedef int feet;

三、枚举类型

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

如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型。所谓"枚举"是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。

创建枚举,需要使用关键字 enum。枚举类型的一般形式为:

enum 枚举名{ 
     标识符[=整型常数], 
     标识符[=整型常数], 
... 
    标识符[=整型常数]
} 枚举变量;

最后

以上就是专注眼神为你收集整理的C++数据类型一、基本的内置类型二、typedef声明三、枚举类型的全部内容,希望文章能够帮你解决C++数据类型一、基本的内置类型二、typedef声明三、枚举类型所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部