运算符和表达式--C++复习(4)
一、赋值运算
赋值运算的左值必须是非const类型的左值,但注意初始化不是赋值;
赋值操作返回右值,因此多个相同类型的变量可以同时被赋值;
指针的赋值是地址的传递,即传递的是地址;
二、自增自减运算
前置形式:++i以及--i;
后置形式:i++以及i--;
区别:前置是先计算后赋值,后置是先赋值后计算。
三、new和delete
1.不仅可以动态创建和释放数组;也可以动态创建和释放单个对象;
1 class Per 2 { 3 **** 4 };
5 6 7 int i; 8 int *pi=new int;//分配内存,未初始化 9 string s="hello"; 10 string *s=new string("hello");//调用构造函数 11 Per *per=new Per();//创建一个Per对象,返回一个指向这个对象的指针
2.new在自由存储区分配并创建对象,返回一个指向这个对象的指针。我们通过该指针来访问找这个对象。
3.及时使用delete来释放内存,如:delete pi;
4.当使用delete之后,应该重置指针,否则该指针还是指向原来的对象。pi=NULL;
5.const对象的动态分配和释放是一样的:
1 const int *p=new int(1024); 2 delete p;