C++ 允许 char
、int
和 double
数据类型前面加上修饰符来改变基本类型的含义,使其更精确地适应各种情况的需求。
数据类型修饰符
序号 |
修饰符 |
1 |
signed |
2 |
unsigned |
3 |
long |
4 |
short |
修饰符 signed
、unsigned
、long
和 short
可以应用于整数的基本类型。另外,signed
和 unsigned
也可以应用于 char
,而 long
可以应用于 double
。
修饰符 signed
和 unsigned
也可以作为前缀用在 long
或者 short
修饰符之前。例如 unsigned long int
。
C++ 允许使用简写标记来声明无符号、短整型或长整型。你可以简单地使用单词 unsigned
、short
或 long
,不加 int
。它会自动暗示 int
。例如,下面两个语句都声明了无符号整型变量:
unsigned x;
unsigned int y;
为了理解 C++ 如何解释带符号和无符号整型修饰符之间的差异,你应该运行下面这个简短的程序:
#include <iostream>
using namespace std;
int main() {
short int i;
short unsigned int j;
j = 50000;
i = j;
cout << i << " " << j;
return 0;
}
当运行这个程序时,输出结果如下:
-15536 50000
上述结果是因为代表 50,000 的无符号短整型位模式被带符号的短整型解释为 -15,536。
C++ 中的类型限定符
类型限定符提供了关于它们前面变量的附加信息。
序号 |
限定符 |
含义 |
1 |
const |
const 类型的对象不能被程序在执行期间改变。 |
2 |
volatile |
volatile 修饰符告诉编译器一个变量的值可能以程序未明确指定的方式被改变。 |
3 |
restrict |
由 restrict 限定的指针最初是唯一能够访问它所指向对象的方式。只有 C99 添加了一个新的类型限定符叫做 restrict 。 |