C++ 类型修饰符

在 C++ 编程中,**类型修饰符**用于改变基本 数据类型 的含义。

C++ 中有四种类型修饰符

  • short
  • long
  • signed
  • unsigned

以下是简要总结

数据类型 大小(以字节为单位) 含义
有符号整型 4 用于整数(等同于 int)。
无符号整型 4 只能存储非负整数。
short 2 用于小整数。
范围:-3276832767
long 至少 4 用于大整数。
等同于 long int
无符号长整型 4 用于大的正整数或 0
等同于 unsigned long int
long long 8 用于非常大的整数。
等同于 long long int
unsigned long long 8 用于非常大的正整数或 0
等同于 unsigned long long int
long double 8 用于大的浮点数。
有符号字符 1 用于字符。
保证范围 -127127
无符号字符 1 用于字符。
范围 0255

short 类型修饰符

我们可以使用 short 来表示小整数(范围在 −32,76732,767 之间)。例如,

// small integer
short a = 12345;

在此,a 是一个 short 整型变量。

注意: short 等同于 short int


long 类型修饰符

如果我们想存储一个大整数(范围在 -21474836472147483647 之间),我们可以使用类型说明符 long。例如,

// large integer 
long b = 123456;

注意: long 等同于 long int

long 类型修饰符也可以与 double 变量一起使用。

// large floating-point number 
long double c = 0.333333333333333333L;

注意: 为了表示 long double,我们使用 L 后缀。如果我们不使用后缀 L,它是一个 double 值被转换为 long double(这可能会导致数据丢失)。


long long

long 可以重复两次以创建 long long 类型。此类型用于比 long 更大的数字。long long 类型修饰符只能与 int 一起使用。

例如,

// long long int
long long num = 12345678;

signed 和 unsigned 修饰符

Signed 变量可以同时容纳正数和负数整数,包括。例如,

// positive valued integer 
signed int x = 23;

// negative valued integer
signed int y = -13;

// zero-valued integer
signed int z = 0;

这里,

  • x 存储一个正值整数
  • y 存储一个负值整数
  • z 存储一个零值整数

注意

  • 默认情况下,整数是 signed 的。因此,我们可以直接使用 int 而不是 signed int
  • signedunsigned 只能与 intchar 类型一起使用。

unsigned 变量只能存储非负整数值。例如,

// positive valued integer
unsigned int x = 2;
unsigned int y = 0;

这里,

  • x 存储一个正值整数
  • y 存储零

通常,int 变量可以存储的范围是从 -2,147,483,6482,147,483,647

unsigned int 变量可以存储的范围是从 04,294,967,295


signed, unsigned 和 plain char

C++ 有 3 种不同的 char 类型

  • char
  • 有符号字符
  • 无符号字符

实际上,基本只有 2 种类型

  • signed char(保证范围:-127127
  • unsigned char(保证范围:0256

这是因为不同的编译器根据自己的偏好将 char 处理为 signed charunsigned char

注意事项

  • 在标准 C++ 中,charsigned charunsigned char 不同。为了实用性,编译器会忽略这一点。
  • 当我们只使用 char 而不是它的 signedunsigned 变体时,这种类型被称为plain char

正如你可能猜到的,signed char 可以存储正负整数,而 unsigned char 只能存储正整数(包括 0)。

// plain char
char plain_1 = 65;
char plain_2 = 0;

// plain char with negative value
// might cause problems with some compilers
char plain_3 = -56;

// signed char
signed char  sin_1 = 12;
signed char  sin_2 = 0;
signed char  sin_3 = -12;

// unsigned char
unsigned char  unsin_1 = 85;
unsigned char  unsin_2 = 0;

这里,

  • plain_1 存储一个正值整数
  • plain_2 存储一个零值整数
  • sin_1 存储一个正值整数
  • sin_2 存储一个零值整数
  • sin_3 存储一个负值整数
  • unsin_1 存储一个正值整数
  • unsin_2 存储一个零值整数

注意: 最好不要使用 plain char 进行数值运算;应改用 signed charunsigned charPlain char 仅应用于存储字符值。

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战