C/C++的基本数据类型

时间:2022-05-29 17:26:11

数据类型决定数据的空间分配, 及能对其做什么操作.

C语言中的四种基本数据类型: char,int,float,double.

C与C++定义这些类型时都只是限定它们的最大最小值, 而不是它们的size(占几个字节). 这些最值存储在limits.hfloat.h中.
不同编码方式表示相同数据占用字节数量可能不同.

CPP中引入了bool类型

C中没有bool, C++有. 由此又引入了两个关键字:true,false. 这两个关键字在cpp与java中一样. 但在python中分别是TrueFalse.
数值类型可以转换为bool类型: 0为false, 其余为true.
bool类型也可以转换成数据类型:true为1, false为0.

#include<iostream>
using namespace std;

int main()
{
int a = 10, b = 0, c = -1;
cout << (bool)a << (bool)b<<(bool)c<< endl;
}

限定符(Specifiers): short, long, signed, unsigned

short,long加在int前, 可以修改int的limit. 但如何改具有平台差异性. 不过有一点要保证: short int, int, long int, 这三种数据类型, 后面的最小值不小于前者的最大值.
C/Cpp的这种语言特性对其可移植造成了一定障碍. 不如Java, 所有平台一致. 也不如python, 所有的int都是默认是long int, big integer, 能表示所有的整数, 唯一的限制是内存空间. 很方便的一种特性, 特别是对科学计算, 数据处理来说.

signedunsigned可以改变符号位的解释方式. 除了char默认为unsigned, 其余默认都是signed.

Pointer 和 Reference

不知道在不在基本数据类型的范畴之内. 不过这个也不重要.