- 博客(5)
- 收藏
- 关注
原创 C++中的强制转换
转换操作符用途安全性通常类型转换、上行转换较高多态类型下行转换(父 → 子)高const_cast增删 const/volatile低底层指针/类型重解释(慎用)极低。
2025-04-21 16:31:13
435
原创 C++中前置++和后置++的区别
对于自定义类(如迭代器等),优先使用前置 ++,因为后置版本通常会额外生成一个临时对象,效率更低。项目前置 ++ (++i)后置 ++ (i++)自增顺序先自增再使用先使用再自增返回值自增后的值自增前的值效率略优(无临时对象)稍低(需临时对象)int i = 5;cout << "前置 ++ : " << ++i << endl;// 输出 6,i 已加 1i = 5;cout << "后置 ++ : " << i++ << endl;// 输出 5,i 之后变成 6。
2025-04-08 16:48:27
597
原创 C++中new,malloc以及calloc的区别
初始化的区别new:根据对象类型调用构造函数。基本类型(如 int)可能不初始化(除非使用 new int())。类类型一定会调用构造函数。malloc:分配的内存内容未定义(可能是垃圾值)。calloc:分配的内存所有位初始化为 0(等价于 malloc + memset(0))。数组分配new[ ]:支持数组分配,自动调用每个元素的构造函数。malloc/calloc:分配数组需手动计算总大小,不调用构造函数。
2025-04-02 13:00:16
504
原创 C++中define、typedef、inline、const和constexpr的区别
constexpr 只能定义编译期常量,⽽ const 可以定义编译期常量,也可以定义运⾏期常量。相较于const,constexpr 可以用于数组大小、模板参数等要求编译期确定的场景。// 运行时和编译期皆可用// 仅编译期可用// 可能编译错误(如果 x 不是编译期常量)// 编译成功C++ 中更推荐使用 const 或 constexpr 替代常量宏,使用 inline或constexpr 替代宏函数。
2025-04-01 14:51:53
1313
原创 C++中指针和引用的区别
定义:指针是一个变量,其值为另一个变量的地址,指针本身也占用内存空间。声明:使用*符号进行声明int a = 10;// 定义指针并初始化用指针:需动态内存管理、可选绑定、或实现复杂数据结构(如链表)。用引用:需简化语法、避免拷贝、或强制绑定有效性(如函数参数传递)。int x = 10;//指针指向x的地址cout <<"x原始的值" << x << endl;*ptr = 11;//修改指针指向的值cout << "修改后x的值" << x << endl << endl;
2025-03-30 21:27:56
630
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人