new ,delete
1. malloc ,free
int *p = (int *)malloc(sizeof(int)*10);
free(p);
2. new,delete
2.1 单个类型
指针 = new 数据类型
int *p = new int;
delete p;
2.2 希望连续分配的数据
int *p = new int[10]; //分配10个int类型数据的内存空间。
delete[] p;
inline 内联函数
函数调用的时候会发生一些时间开销:系统栈的保护,参数的传递,栈的恢复;?
对于函数体比较小,执行时间短但频繁使用的函数来说,这种开销比较大。
内联函数机制,不是在函数调用的时候发生转移而是在编译的时候将函数体嵌入到每个内联函数
调用处,可以省去调用进栈出栈的时间开销。
函数的定义:
inline <类型标识><函数名>(形参列表)
{
函数体
}
必要说明:
1) 内联函数不能含有循环语句,swtich语句
2) 内联函数必须在调用之前声明和定义;
3)内联函数不能指定抛出异常类型;
4)inline只是修饰函数向编译器提出内联请求,做不作为内联函数由编译器决定;
#include <iostream>
using namespace std;
inline int max(int,int);
int main()
{
int a[10];
cout<<"input 10 members:"<<endl;
for(i=0; i<10; i++)
{
cin>>a[i];
}
int temp=a[0];
for(i=0; i<10; i++)
{
temp = max(temp, a[i]);
}
cout<<"in 10 members is max :"<<temp<<endl;
return 0;
}
inline int max(int x,int y)
{
return x>=y>x:y;
}