当前位置: 首页 > news >正文

6.C++程序中的基本数据类型

数据类型是指在C++中用于声明不同类型变量或函数的一个系统或抽象或者是一个分类,它决定了变量存储占用的内存空间以及解析存储的位模式。其实数据类型可以理解为固定内存大小的别名,是创建变量的模具,具体使用哪种模具(包括自定义)需要根据实际问题的抽象结果来确定。一旦确定数据类型,那么此数据所占用的内存模式,开辟的内存大小都会被固定下来。

在前面我们已经使用了一些数据类型了,比如

#include <iostream>
using namespace std;int radius = 0;  //定义了整型
int area() {int radius = 30;cout << "Radius=" << radius*PI << endl;return 0;
}int main() {const float PI = 3.14; //定义PI值  PI为单精度浮点型cout << "pi=" << PI << endl;radius = 10;cout << "Radius=" << radius  << endl;cout << "Area=PI(r*r)=" << (PI * radius * radius) << endl;area();cout << "Radius=" << radius  << endl;cout << "Area=PI(r*r)=" << (PI * radius * radius) << endl;}

看上面的注释,radius前面的int表示的是整型;PI前端的float表示的是单精度浮点型。

那么C++中的数据类型都包括什么呢?

1.基本数据类型:

整数类型(整型),浮点类型(小数类型,浮点型),字符类型(字符)和void(无类型,主要用于函数的返回)。

2.派生类型和扩展类型:

由基本数据类型衍生出来的类型,比如,函数,结构体,指针,枚举,联合体等。

咱们主要讲基本数据类型,其它的类型,在后面使用到的时候再讲解。

1.整数型(整型)

整型用于存放整整,所占的内存取决于编译器(32位或64位)编译的目标不同,所占内存大小不同,int 在32位系统中为 4字节,也就是32位。在一些16位系统中,int 为2字节,在64位系统中int为8字节,但实际上在64位系统中,int类型的数值达不到8字节。

一般我们在32位机器中,int的取舍范围为:-2^31 ~ 2^31-1。

事实上,整型还有其它的修饰符,如short、 long 等

‌short‌:通常占用2字节(16位),取值范围为-2^15 ~ 2^15-1。

‌int‌:在大多数平台上占用4字节(32位),取值范围为-2^31 ~ 2^31-1。

‌long‌:在32位系统中通常也是4字节,但在64位系统中可能为8字节,取值范围与long long相同,即-2^63 ~ 2^63-1。

‌long long‌:无论系统或编译器如何,都占用8字节,取值范围为-2^63 ~ 2^63-1。

此外,还有无符号整型类型,如‌unsigned short‌、‌unsigned int‌、‌unsigned long‌和‌unsigned long long‌,它们的取值范围分别是在对应有符号类型的基础上,将负数的部分替换为从0到最大值。例如,‌unsigned int‌的取值范围是0到2^32-1。

需要注意的是,整型数据类型的具体实现可能因编译器和操作系统的不同而有所差异。例如,在某些编译器和操作系统中,‌long‌可能被实现为4字节或8字节,具体取决于平台。因此,编程时应该考虑到这些差异,以确保代码的可移植性和正确性。此外,当进行数值计算时,应避免整数溢出的情况,以确保计算的正确性‌。

整数除了用十进制表示外,还可以使用二进制和八进制表示,

#include <iostream>
using namespace std;int radius = 0;  //定义了整型int main() {int binInt=0b111100;int octInt=034;const float PI = 3.14; //定义PI值  PI为单精度浮点型cout << "pi=" << PI << endl;radius = 10;cout << "Radius=" << radius  << endl;cout << "Area=PI(r*r)=" << (PI * radius * radius) << endl;cout << "Radius=" << radius  << endl;cout << "Area=PI(r*r)=" << (PI * radius * radius) << endl;}

上面的binInt变量为二进制表示,octInt变量为八进制表示。

执行结果为:

 可以正常输出。

浮点型表示小数的类型,经常使用的为float或double关键字来定义浮点型变量。

#include <iostream>
using namespace std;int main() {float flot=3.14;double doub=3.14;cout << "flot:"<< flot << endl;cout << "sizeOf:"<< sizeof(flot) << endl;cout << "doub:"<< doub << endl;cout << "sizeOf:"<< sizeof(doub) << endl;}

 上面的代码定义了两个浮点类型,其中float类型为单精度,double为双精度,他们打印出来以及所占内存大小为:

 字符型表示单个字符,通过用char(窄字符)或wchar_t(宽字符)来表示,

#include <iostream>
using namespace std;int main() {char ch1 = 'B';wchar_t ch2 = L'B';string str = "ABCABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDD";cout << "ch1:" << ch1 << endl;cout << "sizeOf:" << sizeof(ch1) << endl;cout << "ch2:" << ch2 << endl;cout << "sizeOf:" << sizeof(ch2) << endl;cout << "str:" << str << endl;cout << "sizeOf:" << sizeof(str) << endl;}

 

 wchar_t占两个字节,char只占用一个字节,string 表示的是字符串,是多个字符组成的,一般来说他不属于基本数据类型,但是字符串是经常用到的,所以在这里也算到基本数据类型中了。

 布尔类型

布尔类型用于存放真/假,在c++中使用bool表示布尔类型,一般使用1表示真,0表示假,虽然使用1或0没有问题,但是如果定义为bool,true或false更明确。


http://www.mrgr.cn/news/31383.html

相关文章:

  • A. Closest Point
  • 基于开源鸿蒙(OpenHarmony)的【智能家居综合应用】系统
  • OpenAI GPT o1技术报告阅读(3)-英文阅读及理解
  • ubuntu 20.04 ‘Wired Unmanaged‘ 网络无法配置解决方法
  • 八股文-多线程、并发
  • 小新-13 2019 Intel款IML版【81UQ】原装出厂Win10系统镜像下载
  • 缓存装饰器@cached_property
  • vulnhub(11):derpnstink(hydra爆破用户名和密码、验证的文件上传)
  • 变量的作用域和生命周期
  • React基础教程(10):React Hooks
  • 建筑工程五方责任主体项目负责人质量终身责任追究暂行办法
  • 哈希表的使用
  • Spring Boot中使用注解拦截器实现通用校验器和基于角色的权限注解
  • java之杨辉三角问题
  • A Simple Encoder-Decoder for Open-Vocabulary Semantic Segmentation
  • safepoint是什么?有什么用?
  • anaconda的windows新手安装及配置教程(适用于物联网工程、计算机专业)
  • Matlab R2024B软件安装教程
  • web基础—dvwa靶场(十)XSS
  • 极越联手百度这你受得了吗!SU7还能稳坐“7字辈”头把交椅?