1、malloc和new区别与联系
a、malloc:
malloc为函数,需要头文件,申请的无类型,需要强制转换;free释放。
示例:char *p = (char *)malloc(10 * sizeof(char));
free(p);
b、new:
new是运算符,不需要头文件,申请的是有类型的,自动调用构造函数;delete释放,自动调用析构函数。
示例:char *p = new char[10];
delete []p;
2、引用与指针
指针是个变量,可将其赋值成指向别处的地址;建立引用时必须初始化且不会再关联其他变量;不能对数组引用,不能对void类型引用。
局部变量不能被函数返回为引用,只能返回值;可返回静态局部变量。
示例:float& function(float r)
{
float temp;
temp = 3.14 * r * r;
return temp; //error 返回引用是个局部变量
}