问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

C++基础:数据类型介绍

创作时间:
作者:
@小白创作中心

C++基础:数据类型介绍

引用
CSDN
1.
https://blog.csdn.net/u012171005/article/details/145993325

本文对C++语言中的数据类型做一个简单的介绍。

大家知道,C++ 是一种通用、高性能的编程语言,支持多范式编程(面向对象、泛型、过程化),由本贾尼·斯特劳斯特卢普(Bjarne Stroustrup)于 1985 年基于 C 语言扩展而来。

官网地址:https://cplusplus.com/doc/
参考手册:https://cppreference.cn/w/

二、基本数据类型

  1. 整型
    表示整数,包含以下类型:
  • int:标准整数,通常占4字节,范围:-2,147,483,648 ~ 2,147,483,647
示例:int a = 1000;
  • short:短整型,通常占2字节,范围:-32,768 ~ 32,767
示例:short b = 30;
  • long:长整型,通常占4字节(32位系统)或8字节(64位系统),32位系统范围:-2,147,483,648 ~ 2,147,483,647,64位系统范围:-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
示例:long c = 100000L;
  • long long:64位整数(C++11引入),范围:-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
示例:long long d = 9000000000000000000LL;
  1. 浮点型
    表示带小数的数值:
  • float:单精度浮点,通常占4字节,精度约6-7位小数
示例:float e = 3.14f;(需加`f`后缀)
  • double:双精度浮点,通常占8字节,精度约15-16位小数
示例:double f = 3.1415926535f;
  • long double:扩展精度,通常占12或16字节,精度约18~34位小数
示例:long double g = 3.1415926535897932385L;
  1. 字符型
  • char:存储单个字符(1字节),实际为ASCII码整数
示例:char h = 'A';(等价于`h = 65;`)
  • wchar_t:宽字符类型(通常为2或4字节),用于Unicode
示例:wchar_t wc = L'中';(前面需要多一个大写的L)
  1. 布尔型
  • bool:仅取 truefalse(底层存储为1或0)
示例:bool flag = true;

三、类型修饰符

  • signed:有符号类型(默认),可表示正负值
示例:signed int si = -100;
  • unsigned:无符号类型,仅表示非负值
示例:unsigned int ui = 40000;
  • short / long:结合整型使用,调整存储空间
示例:unsigned long ul = 4294967295UL;

四、派生数据类型

  1. 数组
    存储同类型元素的连续集合:
int arr[5] = {1, 2, 3, 4, 5};
  1. 指针
    存储变量内存地址:
int a = 100;
int* p = &a; // 指向整型变量的指针
  1. 引用
    变量的别名:
int a = 100;
int& ref = a; // 引用必须初始化

五、标准库类型

C++ 标准库包括一组头文件,这些头文件提供了各种功能和工具,涵盖了输入输出、容器、算法、多线程、正则表达式等。比如:

  • std::string,字符串类型:
std::string s = "Hello";
  • std::vector,动态数组:
std::vector<int> v = {1, 2, 3};
  • std::array,固定大小数组(C++11 引入)
std::array<int, 3> a = {1, 2, 3};
  • std::pair,存储两个值的容器:
std::pair<int, float> p(1, 2.0);
  • std::map,键值对容器:
std::map<int, std::string> m;
  • std::set,唯一值集合:
std::set<int> s = {1, 2, 3};

六、用户自定义类型

  1. 结构体(struct
    组合不同数据类型:
struct Point { 
    int x; 
    int y; 
};
Point p1 = {10, 20}; // 结构体实例化
  1. 枚举(enum
    定义命名常量集合:
enum Color { RED, GREEN, BLUE };
Color c = RED; // 枚举赋值
  1. 类(class
    面向对象的核心类型:
class Circle { 
public: 
    double radius; 
    double area() { return 3.14 * radius * radius; } 
};
Circle cir; 
cir.radius = 5.0; // 类对象使用

七、空类型(void

  • 表示无类型,用于函数返回值或指针:
void printMessage() { ... } // 无返回值函数
void* ptr = nullptr;        // 通用指针

八、类型转换

  1. 隐式转换
    自动类型提升:
int num = 10;
double d_num = num; // int → double
  1. 显式转换
    强制类型转换:
double pi = 3.14159;
int int_pi = static_cast<int>(pi); // 截断为3

九、其他

  • 类型大小可通过 sizeof 运算符获取:
cout << "int 大小: " << sizeof(int) << " 字节" << endl;
  • C++11引入 auto 关键字自动推导类型:
auto var = 5;          // var类型为int
auto str = "Hello";    // str类型为const char*

十、总结

以上对C++语言中基本数据类型、派生数据类型、自定义数据类型等等做了简单的介绍,并提供了相关的C++示例代码。希望对大家有帮助。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号