动态内存分配可以根据实际需要在程序运行过程中动态地申请内存空间,这种内存空间的分配和释放是由程序员自己管理的,因此也被称为手动内存分配。
C++ 中,动态内存的分配和释放是通过 new 和 delete 操作符进行的。new 操作符用于在堆内存上为对象动态分配空间,delete 操作符用于释放由 new 分配的内存空间。
int* p = new int[5];
在使用完分配的内存空间后,需要使用 delete 操作符将其释放:
delete[] p;
需要注意的是,使用 new 动态申请的内存空间不会自动被释放,如果不手动释放,就会造成内存泄漏。
编写内联函数求解 2x²+4x+5 的值:
在 C++ 中,可以使用 inline 关键字将一个函数声明为内联函数。内联函数的作用是将函数的代码直接嵌入到调用该函数的地方,这样可以减少函数调用的开销,提高程序的执行效率。
在本题中,我们需要编写一个内联函数用于求解 $2x^2 + 4x + 5$ 的值。由于 $2x^2 + 4x + 5$ 是一个多项式,因此可以直接将其展开,得到:$2x^2 + 4x + 5 = 2 \times x \times x + 4 \times x + 5$。
#include <iostream>
using namespace std;
// 内联函数求解 2x^2 + 4x + 5 的值(针对 int 类型)
inline int func(int x)
{
return 2 * x * x + 4 * x + 5;
}
// 内联函数求解 2x^2 + 4x + 5 的值(针对 double 类型)
inline double func(double x)
{
return 2 * x * x + 4 * x + 5;
}
int main()
{
// 测试 int 类型数据
int x1 = 5;
cout << "func(" << x1 << ") = " << func(x1) << endl;
// 测试 double 类型数据
double x2 = 5.2;
cout << "func(" << x2 << ") = " << func(x2) << endl;
return 0;
}
最终输出结果:
func(5) = 65
func(5.2) = 74.52