美文网首页C++学习C/CPLUS
C++<第一篇>:基本数据类型

C++<第一篇>:基本数据类型

作者: NoBugException | 来源:发表于2022-01-08 12:11 被阅读0次
一、整数类型

基本数据类型是最基础的也是最根本的,主要是了解基本数据类型所占用的字节个数

基本数据类型分为有符号和无符号,分别用signedunsigned表示。

整型的基本数据类型如下:

整型 字节 取值范围 占位符
int 4 -2,147,483,648 到 2,147,483,647 %d
unsigned int 4 0 到 4,294,967,295 %u
short 2 -32,768 到 32,767 %hd
unsigned short 2 0 到 65,535 %hu
long 4 -2,147,483,648 到 2,147,483,647 %ld
unsigned long 4 0 到 4,294,967,295 %lu
char 1 -128 到 127 %c
unsigned char 1 0 到 255 %c

计算机有:16位机、32位机、64位机。早起的计算机基本都是16位的,当然现在的计算机基本都是64位了。
在不同的机器上,基本数据类型的大小可能是不同的,我们不需要深究哪里不同,使用sizeof(基本数据类型)可以轻松查看当前基本数据类型在当前机器上所占的字节数。

下面开始亲自演示一下基本数据类型到底占用了多少字节。
由于现在64位机已经普及,这里选择64位机。

image.png

下面,定义五种整数类型:

// 整数类型=========================

signed short a = 1; // 有符号短整数(signed可以省略)
unsigned short b = 1; // 无符号短整数

signed int c = 2; // 有符号整数(signed可以省略)
unsigned int d = 2; // 无符号整数

signed long e = 3; // 有符号整数(signed可以省略)
unsigned long f = 3; // 无符号整数

signed long int g = 4; // 有符号整数(signed可以省略)
unsigned long int h = 4; // 无符号整数

signed long long i = 5; // 有符号长整数(signed可以省略)
unsigned long long j = 5; // 无符号长整数

打印它们占用的字节数:

cout << "signed short 占用字节数:" << sizeof(signed short) << endl;
cout << "unsigned short 占用字节数:" << sizeof(unsigned short) << endl;
cout << "signed int 占用字节数:" << sizeof(signed int) << endl;
cout << "unsigned int 占用字节数:" << sizeof(unsigned int) << endl;
cout << "signed long 占用字节数:" << sizeof(signed long) << endl;
cout << "unsigned long 占用字节数:" << sizeof(unsigned long) << endl;
cout << "signed long int 占用字节数:" << sizeof(signed long int) << endl;
cout << "unsigned long int 占用字节数:" << sizeof(unsigned long int) << endl;
cout << "signed long long 占用字节数:" << sizeof(signed long long) << endl;
cout << "unsigned long long 占用字节数:" << sizeof(unsigned long long) << endl;

输出结果如下:

image.png

其中,long int可以简写为long,本质上long int就是long
从字节数上来分析,在当前64位机上,int和long都占用4个字节,但是long long却是8个字节。

在实际开发中,推荐使用:short、int、long long,或者自己使用自定义的类型:int16_tint32_tint64_tint16_tint32_tint64_t可读性极好,可以一眼看出占用的字节数。

二、字符类型

整型的基本数据类型如下:

字符型 字节 取值范围 占位符
char 1 -128 到 127 %c
unsigned char 1 0 到 255 %c

字符类型也分为有符号和无符号。

// 字符类型=========================
char k = '6'; // 字符指针数据类型,默认是有符号的
cout << "char 占用字节数:" << sizeof(char) << endl;

unsigned char l = '6';
cout << "unsigned char 占用字节数:" << sizeof(unsigned char) << endl;

char只占用一个字节。

image.png

它和整型一样,也有一个自定义的数据类型:int8_t,可以使用 int8_t 定义

int8_t k = '6'; // 字符指针数据类型,默认是有符号的
三、浮点类型
浮点型 字节 精度 占位
float 4 6位小数 %f
double 8 15位小数 %lf
long double 8 19位小数 %Lf

其中, long double 比 double 更为精准。

float num = 1.0f;
cout << "float 占用字节数:" << sizeof(float) << endl;

double num2 = 1.0;
cout << "double 占用字节数:" << sizeof(double) << endl;

long double num3 = 1.0;
cout << "long double 占用字节数:" << sizeof(long double) << endl;
image.png
四、布尔类型

布尔类型使用bool来表示,它只占一个字节。

bool isTrue = true;
if (isTrue) {
    cout << "this is true" << endl;
}
cout << "bool 占用字节数:" << sizeof(bool) << endl;
image.png

if(a),a可以是整型,如果a=0,那么就是false,如果a为非0,那么就是true。

五、总结

(1)如果要定义一个有符号数据,关键字signed是可选的,可以写也可以不写;
(2)如果要定义一个无符号数据,关键字unsigned必须要写;
(3)有符合和无符号不影响占用的字节数;
(4)在实际开发中,整型和字符类型尽量使用int8_t、int16_t、int32_t、int64_t;

[本章完...]

相关文章

  • c++笔记1

    1.数据类型 黑色的是c和c++共有的数据类型,红色的是c++独有的数据类型。 2.基本类型数据的内存长度和数值范...

  • C++ - 重载运算符

    运算符 C++ 预定义表示对数据的运算只能用于基本的数据类型 C++ 提供了数据抽象的手段用户自己定义数据类型 -...

  • C++学习大纲

    交流728483370,一起学习加油! C++ 基本数据类型和表达 C++ 无条件转移控制 C++ 子程序间的数据...

  • 2020徐州C++初级班,开启探索计算机科学之路

    课程内容: 1、C++输入输出机制; 2、C++基本数据类型; 3、C++运算符和表达式; 4、C++顺序结构; ...

  • Java基础概念

    本系列文章着重介绍java与C++的区别。 一、数据类型 java言语数据类型只有两种:基本数据类型、引用数据类型...

  • c++基本数据类型

    c++作为c的超集,除了引入了class类型外,其基本数据类型和c基本一致: 各种基本数据类型的大小、范围和精度如...

  • C/C++ 数据长度

    知识点 C/C++基本数据类型在各平台下的长度(所占字节) 类所占字节(例题5) 基本数据类型 通过指针大小,可以...

  • 王道程序员求职宝典(一)基本概念及数组

    王道程序员求职宝典 [toc] 第一篇 程序设计基础及数据结构基础 基本概念 c++内置类型 c++基本整形 内存...

  • NDK开发(二)- JNI

    JNI(Java Native Interface):Java调用C/C++的规范。 一、JNI数据类型 基本数据...

  • C++基本语法(一)

    1、Hello World 程序结构 2、数据类型 C++提供了7种基本数据类型 一些基本类型可以使用一个或多个类...

网友评论

    本文标题:C++<第一篇>:基本数据类型

    本文链接:https://www.haomeiwen.com/subject/hmeecrtx.html