C语言中,如何将运算符和表达式--复习(4)改写成长尾?
- 内容介绍
- 文章标签
- 相关推荐
本文共计422个文字,预计阅读时间需要2分钟。
一、赋值运算+赋值运算的左值必须是非const类型的左值,但注意初始化不是赋值;+赋值运算返回右值,因多个相同类型的变量可以同时被赋值;+指针的赋值是地址的传递,即直接传递。
一、赋值运算
赋值运算的左值必须是非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;
本文共计422个文字,预计阅读时间需要2分钟。
一、赋值运算+赋值运算的左值必须是非const类型的左值,但注意初始化不是赋值;+赋值运算返回右值,因多个相同类型的变量可以同时被赋值;+指针的赋值是地址的传递,即直接传递。
一、赋值运算
赋值运算的左值必须是非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;

