📅  最后修改于: 2023-12-03 15:14:03.646000             🧑  作者: Mango
在C++中,有多种数据类型用于存储不同的数据,它们不仅有区别的数据类型名称,而且有不同的数据类型限制和范围。下面将介绍主要的C++数据类型及其宏。
char
类型用于存储单个字符,其取值范围为-128至127或0至255,具体取决于编译器实现。在<climits>
头文件中,你可以找到CHAR_MIN
和CHAR_MAX
宏,这些宏可用于获取char
类型的最小和最大值。
#include <iostream>
#include <climits>
int main() {
std::cout << "char类型的最小值: " << (int)CHAR_MIN << std::endl;
std::cout << "char类型的最大值: " << (int)CHAR_MAX << std::endl;
return 0;
}
输出:
char类型的最小值: -128
char类型的最大值: 127
bool
类型用于存储布尔值,它只有两个可能的值:true
和false
。在<cstdbool>
头文件中,你可以找到true
和false
宏,它们分别用于表示bool
类型的true和false。
#include <iostream>
#include <cstdbool>
int main() {
std::cout << "true的值是: " << true << std::endl;
std::cout << "false的值是: " << false << std::endl;
return 0;
}
输出:
true的值是: 1
false的值是: 0
C++中有四种整数类型,它们使用的位数和范围有所不同。
short
类型是一种有符号的整数类型,使用16位表示,其取值范围为-32768至32767。在<climits>
头文件中,你可以找到SHRT_MIN
和SHRT_MAX
宏,这些宏可用于获取short
类型的最小和最大值。
#include <iostream>
#include <climits>
int main() {
std::cout << "short类型的最小值: " << SHRT_MIN << std::endl;
std::cout << "short类型的最大值: " << SHRT_MAX << std::endl;
return 0;
}
输出:
short类型的最小值: -32768
short类型的最大值: 32767
int
类型是一种有符号的整数类型,使用32位表示,其取值范围为-2147483648至2147483647。在<climits>
头文件中,你可以找到INT_MIN
和INT_MAX
宏,这些宏可用于获取int
类型的最小和最大值。
#include <iostream>
#include <climits>
int main() {
std::cout << "int类型的最小值: " << INT_MIN << std::endl;
std::cout << "int类型的最大值: " << INT_MAX << std::endl;
return 0;
}
输出:
int类型的最小值: -2147483648
int类型的最大值: 2147483647
long
类型是一种有符号的整数类型,使用32位或64位表示,其取值范围为例子2,-9223372036854775808至9223372036854775807。在<climits>
头文件中,你可以找到LONG_MIN
和LONG_MAX
宏,这些宏可用于获取long
类型的最小和最大值。
#include <iostream>
#include <climits>
int main() {
std::cout << "long类型的最小值: " << LONG_MIN << std::endl;
std::cout << "long类型的最大值: " << LONG_MAX << std::endl;
return 0;
}
输出:
long类型的最小值: -9223372036854775808
long类型的最大值: 9223372036854775807
long long
类型是一种有符号的整数类型,使用64位表示,其取值范围为-9223372036854775808至9223372036854775807。在<climits>
头文件中,你可以找到LLONG_MIN
和LLONG_MAX
宏,这些宏可用于获取long long
类型的最小和最大值。
#include <iostream>
#include <climits>
int main() {
std::cout << "long long类型的最小值: " << LLONG_MIN << std::endl;
std::cout << "long long类型的最大值: " << LLONG_MAX << std::endl;
return 0;
}
输出:
long long类型的最小值: -9223372036854775808
long long类型的最大值: 9223372036854775807
C++中有两种浮点类型:float
和double
。它们使用不同的位数来存储浮点数,因此具有不同的取值范围和精度。
float
类型是一种单精度浮点类型,使用32位表示,其取值范围和精度较低。在<cfloat>
头文件中,你可以找到FLT_MIN
和FLT_MAX
宏,这些宏可用于获取float
类型的最小和最大值。
#include <iostream>
#include <cfloat>
int main() {
std::cout << "float类型的最小值: " << FLT_MIN << std::endl;
std::cout << "float类型的最大值: " << FLT_MAX << std::endl;
return 0;
}
输出:
float类型的最小值: 1.17549e-38
float类型的最大值: 3.40282e+38
double
类型是一种双精度浮点类型,使用64位表示,其取值范围和精度较高。在<cfloat>
头文件中,你可以找到DBL_MIN
和DBL_MAX
宏,这些宏可用于获取double
类型的最小和最大值。
#include <iostream>
#include <cfloat>
int main() {
std::cout << "double类型的最小值: " << DBL_MIN << std::endl;
std::cout << "double类型的最大值: " << DBL_MAX << std::endl;
return 0;
}
输出:
double类型的最小值: 2.22507e-308
double类型的最大值: 1.79769e+308
扩展数据类型是C++11引入的新类型,它们提供了更好的可移植性和可靠性,适合于处理大型数据和高性能计算。
在<cstdint>
头文件中,你可以找到int8_t
、int16_t
、int32_t
和int64_t
类型,这些类型用于精确控制整数类型的大小和符号。这些类型确保了它们在不同的平台上的大小和精度是相同的。
#include <iostream>
#include <cstdint>
int main() {
std::cout << "int8_t类型的大小: " << sizeof(int8_t) << "字节" << std::endl;
std::cout << "int16_t类型的大小: " << sizeof(int16_t) << "字节" << std::endl;
std::cout << "int32_t类型的大小: " << sizeof(int32_t) << "字节" << std::endl;
std::cout << "int64_t类型的大小: " << sizeof(int64_t) << "字节" << std::endl;
return 0;
}
输出:
int8_t类型的大小: 1字节
int16_t类型的大小: 2字节
int32_t类型的大小: 4字节
int64_t类型的大小: 8字节
uintptr_t
类型是一种无符号整数类型,其大小足以容纳指针类型。在<cstdint>
头文件中,你可以找到uintptr_t
类型,这个类型的主要作用是在涉及内存操作时提供一种可移植的类型。
#include <iostream>
#include <cstdint>
int main() {
int* p = NULL;
std::uintptr_t int_addr = (std::uintptr_t)p;
std::cout << "指针类型对应的uintptr_t类型的size: " << sizeof(int_addr) << std::endl;
return 0;
}
输出:
指针类型对应的uintptr_t类型的size: 8
本文总结了C++中常用的数据类型及其宏,涵盖了基本数据类型和扩展数据类型。了解这些类型的功能和使用方法可以使编程更加高效和准确。