3.数据类型
3.5 signed和unsigned
signed和unsigned关键字是用于修饰字符型和整型类型的。
| signed | 有符号 | 表示一个类型带有正负号 |
包含负数 |
| unsigned | 无符号 | 表示该类型不带有正负号 | 只能表示零和正整数 |
对于int类型,默认是带有正负号的,等同于signed int;
int类型也可以不带正负号,只表示非负整数,但必须使用关键字unsigned声明变量。
变量声明为unsigned类型,同样长度的内存可以存储的最大整数值,增大了一倍。
例如,16位的signed short int存储范围是-32768——32767;而16位的unsigned short int存储范围是0——65535。
注:对于char来说,char不一定等价于signed char,取决于编译器。
3.6 数据类型的长度
每种数据类型都有自己的长度。
3.6.1 sizeof操作符
sizeof是关键字,也是操作符,专门用来计算特定数据类型的长度的,单位是字节。
sizeof操作符的操作数可以是类型,也可以是变量名或者表达式,如下
sizeof(类型)
sizeof 表达式 //操作数是表达式是可以省略括号
sizeof的计算结果是无符号整数,即size_t类型,单位是字节,虽然形式上看是一个整数,但该类型包含所有可能的unsigned int,unsigned long,unsigned long long等类型(具体由编译器决定)。
以下代码具体说明其用法:
#include <iostream>
using namespace std;
int main()
{
int a = 100;
//sizeof 计算结果的单位是字节
cout << sizeof(a) << endl;
cout << sizeof a <<endl;
cout << sizeof(int) << endl;
return 0;
}
结果如下:
4
4
4
即说明数据类型为整型(int)的变量a的长度为4个字节,数据类型整型(int)的长度也是4
个字节,不难理解。
3.6.2 各数据类型长度
我们通过sizeof再计算一些数据类型的长度:

这里便可以理解int,long,long long,以及float(单精度)和double(双精度)的区别了;
注:C/C++标准规定long的长度大于等于int,这里两者均为4字节。
·1个字节==8bit==8个比特位
3.7 各类型取值范围
数据类型的长度则决定了该种类型变量的取值范围

可直接在程序中使用使用CHAR_MIN,CHAR_MAX等,需包含相应头文件。
3.8 typedef
typedef关键字是用来给类型重命名的,可以简化类型,提升编码速度,形式如下:
typedef 旧类型名 新类型名
示例:
typedef unsigned long long ull;
//可放在函数外
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/2501_90261939/article/details/157979423




