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