-
基本数据类型的引用
结构体类型的引用
指针类型的引用
引用作函数参数
查看全部 -
new和delete
查看全部 -
释放内存注意事项
查看全部 -
int main(void){ int *p=new int; p=20; or int *p=new int(20); //初始化设置 delete p; p=null; if(null == p){ //检查可用内存 system("pause"); return 0; } int *p = new int[100] //调用内存块 p[0]=10; p[1]=20; ... delete[] p; //无[]只释放第一个内存 p=null;查看全部 -
内存管理
申请内存:new //运算符 new, delete
释放内存:delete
//ex: int *p = new int; delete p; int *arr= new int[10]; delete[] arr;
无空余内存
int *p = new int[1000]; if(NULL == p){ //检查是否成功 //内存分配失败 }释放内存注意:
delete p; p= null; //指针指向 “空”,避免重复清空同一内存导致错误
c++不能和c的内存管理指令混搭使用。
查看全部 -
引用函数参数
查看全部 -
函数参数的覆盖性
重载函数
内联函数
代码演示
查看全部 -
函数参数默认值 实参覆盖默认值
函数重载:1.两个或多个函数名称统一
2.多个函数之间参数个数或者参数类型是不同的
好处:可以不用想函数的不同名字,即可以用相同的函数名
通过参数来辨别函数
内联函数: 编译时将函数体代码和实参代替函数调用语句
内联函数关键字:inline
是否进行内联编译是由编译器决定的
逻辑简单,调用频繁的函数建议使用内联
递归函数无法使用内联方式
查看全部 -
释放char类型的指针时:
delete [ ]str (方括号内为空)
释放int数组时,方括号内为数组长度
查看全部 -
释放指针数组内存时注意:
delete [ ]p
如果不加 [ ] 则为释放指向的第一个内存;
int *p=new int(20); delete p; 是对的
int *p=new int[20]; delete [20]p; 是对的
查看全部 -
使用new申请内存,使用delete释放内存;
申请内存需要判断是否成功,释放内存需要设空指针;
new与delete配套使用。
查看全部 -
有默认参数值的参数必须在参数表的最右端;
函数参数默认值:无参则用默认值,否则实参覆盖默认值;
内联函数(inline)
查看全部 -
指针指向const修饰的变量时,应该是const int a=3,const int const *p = &a;
查看全部 -
const(控制变量是否可以变化) const int x=3;(则此时x为常量,不可进行再赋值) const与指针类型 const int *p=NULL; int const *p=NULL;(两种写法完全等价) int *const p=NULL; const int *const p=NULL; int const *const p=NULL;(这两种写法也是完全等价的) int x=3; const int *p=&x; *p=4(错误,因为const指定的为*p);p=&y;(正确) int x=3; const int *const p=&x; p=&y(错误,因为const指向的为p,只能为x的地址) const与引用 int x=3;const int &y=x; y=10(错误,y通过const限定只能为x的别名,值为3) 总结: const int x=3;int *y=&x;(这种写法是错误的因为x本身定义为const,在用一个可变的指针指向,那么就有用指针改变x值得风险,这是系统所不允许的); int x=3; const int *y=&x;(正确,这样保证了指针对x只有可读性,而没有可写性)
查看全部 -
函数参数默认值
void fun(int i, int j=5); //j的默认值是5 void fun(int i=6, int j); //错误,默认值必须从右道左依次赋予 声明给与默认值,定义不建议给与默认值 void fun(int i, int j=5); //声明 void fun(int i, int j){ //定义 ... } 无实参则使用默认值,否则使用实参函数重载 生产新的参数名
int getMax(int x, int y, int z){...;} //getMax_int_int_int double getMax(double x, double y){...;} //getMax_double_double //计算机自动识别根据类型和个数内联函数 //省去调用和回归主要函数的时间,直接运行
关键字:inline
inline int max(int a, int b int c); //定义加inline int main(){//正常的使用方法 int i=10,j=4,k=9,m; m=max(i,j,k); return 0; }内联函数的建议性的,编译器未必执行。
内联函数的逻辑需要简单,不能有for,while
调用频繁的函数建议使用内联
递归无法使用内联
查看全部
举报