C++ 数据类型(Data Types)
C++ 是一种强类型语言,变量在使用前必须声明其类型。C++ 提供了多种数据类型,包括基本数据类型、用户自定义类型和复合数据类型。
1. 基本数据类型
C++ 提供以下基本数据类型:
| 数据类型 | 关键字 | 大小(通常) | 取值范围 |
|---|---|---|---|
| 整数类型 | int | 4 字节 | -2,147,483,648 ~ 2,147,483,647 |
| 字符类型 | char | 1 字节 | -128 ~ 127 或 0 ~ 255 |
| 浮点数类型 | float | 4 字节 | 3.4E-38 ~ 3.4E+38 |
| 双精度浮点数 | double | 8 字节 | 1.7E-308 ~ 1.7E+308 |
| 长双精度浮点数 | long double | 16 字节 | 3.4E-4932 ~ 1.1E+4932 |
| 布尔类型 | bool | 1 字节 | true(1)或 false(0) |
| 空类型 | void | – | 无返回值 |
⚠ 不同编译器可能有不同的大小分配,可以使用
sizeof()函数查看具体大小。
示例:
#include <iostream>
using namespace std;
int main() {
int a = 10;
char b = 'A';
float c = 3.14;
double d = 3.14159;
bool e = true;
cout << "int: " << a << ", 大小: " << sizeof(a) << " 字节" << endl;
cout << "char: " << b << ", 大小: " << sizeof(b) << " 字节" << endl;
cout << "float: " << c << ", 大小: " << sizeof(c) << " 字节" << endl;
cout << "double: " << d << ", 大小: " << sizeof(d) << " 字节" << endl;
cout << "bool: " << e << ", 大小: " << sizeof(e) << " 字节" << endl;
return 0;
}
2. 修饰符(Modifiers)
C++ 允许使用 修饰符 来调整数据类型的范围和大小。
| 修饰符 | 说明 |
|---|---|
signed | 默认修饰符,允许正负数 |
unsigned | 仅允许非负数 |
short | 短整型,占用更少空间 |
long | 长整型,占用更多空间 |
示例:
#include <iostream>
using namespace std;
int main() {
unsigned int x = 100; // 只允许非负数
short int y = -32768; // 占用 2 字节
long int z = 1000000; // 占用 4 或 8 字节
cout << "unsigned int: " << x << ", 大小: " << sizeof(x) << " 字节" << endl;
cout << "short int: " << y << ", 大小: " << sizeof(y) << " 字节" << endl;
cout << "long int: " << z << ", 大小: " << sizeof(z) << " 字节" << endl;
return 0;
}
3. 复合数据类型
3.1 数组(Array)
数组用于存储相同类型的多个值。
int numbers[5] = {1, 2, 3, 4, 5};
3.2 指针(Pointer)
指针用于存储变量的内存地址。
int a = 10;
int* p = &a;
3.3 结构体(Struct)
结构体用于存储不同类型的数据。
struct Student {
string name;
int age;
float score;
};
3.4 枚举(Enum)
枚举用于定义一组具名常量。
enum Color {RED, GREEN, BLUE};
4. 类型转换
C++ 支持 隐式转换 和 显式转换。
4.1 隐式类型转换
自动转换类型(低精度 → 高精度)。
int a = 5;
double b = a; // 自动转换为 double
4.2 显式类型转换
手动转换类型(高精度 → 低精度)。
double a = 5.75;
int b = (int)a; // 强制转换为 int
5. 总结
- 基本数据类型:
int,char,float,double,bool,void - 修饰符:
signed,unsigned,short,long - 复合数据类型:数组、指针、结构体、枚举
- 类型转换:隐式转换(自动)、显式转换(强制)
建议:根据实际需求选择合适的数据类型,以提高程序效率和可读性!更多详细内容请关注其他相关文章!