C++ 修饰符类型
修饰符用于改变基本类型的含义,所以它更能满足各种情境的需求。
C++ 允许在 char、int 和 double 数据类型前放置修饰符。
C++ 数据类型修饰符有以下几种
- signed
- unsigned
- long
- short
说明
-
修饰符 signed、unsigned、long 和 short 可应用于整型,
-
修饰符 signed 和 unsigned 可应用于字符型
-
long 可应用于双精度型
-
修饰符 signed 和 unsigned 也可以作为 long 或 short 修饰符的前缀。 例如: unsigned long int
C++ 允许使用速记符号来声明 无符号短整数 或 无符号长整数 。 因此我们可以不写 int,只写单词 unsigned、short 或 unsigned、long ,int 是隐含的。
例如,下面的两个语句都声明了无符号整型变量。
unsigned x; unsigned int y;
为了理解 C++ 解释有符号整数和无符号整数修饰符之间的差别,
我们来运行一下下面这个范例
/** * file: main.cpp * author: 简单教程(www.twle.cn) * * Copyright © 2015-2065 www.twle.cn. All rights reserved. */ #include <iostream> using namespace std; /* * 这个程序演示了有符号整数和无符号整数之间的差别 */ int main() { short int i; // 有符号短整数 short unsigned int j; // 无符号短整数 j = 49000; i = j; cout << i << " " << j; cout << endl; return 0; }
编译运行上面的程序,输出结果如下
$ g++ main.cpp && ./a.out -16536 49000
上面的程序,无符号短整数 49,000 的位模式被解释为有符号短整数 -15,536。
C++ 中的类型限定符
类型限定符提供了变量的额外信息
限定符 | 含义 |
---|---|
const | const类型的对象在程序执行期间不能被修改改变 |
volatile | 修饰符volatile告诉编译器,变量的值可能以程序未明确指定的方式被改变。 |
restrict | 由restrict修饰的指针是唯一一种访问它所指向的对象的方式。只有 C99 增加了新的类型限定符 restrict |