重度懒惰和拖延症的我跳过了C语言预处理,直接跳到了C++,C++是包含C的,所以一些基础的知识我就直接跳过了
--------------------------------------------------------------------------------
首先是new操作符:
其作用是在堆区开辟空间,相当于C中的malloc函数,堆区的解释见文章最后。
基本语法如下:
1、在堆区开辟整型数据
int* func()
{
//在堆区创建整形数据
//new返回是 该数据类型的指针
int* p = new int(10);
return p;
}
void test01()
{
int* p = func();
cout << *p << endl;
delete p;//释放空间
}
第一个要注意的是new出来的空间要通过一个指针来指出该空间的地址,另外要注意释放new出来的空间;
2、在堆区开辟数组
void test02()
{
//创建10整形数据的数组 在堆区
int* arr = new int[10];
for (int i = 0; i < 10; i++)
{
arr[i] = i + 100;
}
for (int i = 0; i < 10; i++)
{
cout << arr[i] << endl;
}
//释放
delete[] arr;
//释放数组时,delete后加[]
}
在new操作符的用法上,与上面整型数据的区别似乎开辟了一个整形数组,所以用[],另外,(10)是整型数据的大小,[10]是整型数组的大小。
第二部分为 引用
引用,就是给 变量起一个别名
格式为:数据类型 &别名 = 原名
下面有一个小例子,先定义一个整型变量a,然后以引用的方式创建一个变量b
int &b=a;
a、b是指向同一个变量的,就是a和b都是指向10这个数据所在的空间,并没有为b开辟变量空间。
后面还会讲到浅拷贝和深拷贝的问题,