new:关键字,申请内存
delete:关键字,释放内存
二、使用和特点一、new的使用
//申请内存 //1事情单个内存(一个自己所需要的大小) int *p0= new int; *p0= 66; printf("%dn", *p0); //2、申请单个内存的同时就初始化 int *p1 = new int(233);//初始化了233的数据 //3、申请多个连续的内存 printf("%dn", *p1); int *p2 = new int[5];//申请了五个内存 p2[0] = 20; *(p2 + 1) = 80; printf("%dn", p2[0]); printf("%dn", p2[1]);
二、new的特点
1、new是关键字
2、可以分配两种内存:单个的和连续的内存
3、只有分配单个内存才能初始化,连续的不能初始化
三、delete的使用
delete释放的时候加一个中括号,就会释放到之前申请的所有内存
例如:
int *p[20]=new int[20]; delete [ ]p;//释放了之前申请的*p的所有内存
//释放内存 //单个释放内存 delete p0; p0 = nullptr;//空指针 delete p1; p1 = nullptr;//空指针 //释放连续的内存 //delete p2;//不报错,但是代码是不对的,其实只释放了p2[0]的内存,其他的泄露了 delete [5]p2;//正确的使用方法 p2 = nullptr;//空指针,防止野指针
四、delete的特点
1、delete是运算符
2、
3、使用delete释放内存的时候,对应指针指向需要释放的内存的首地址
4、释放完成后记得指控释放的指针
五、注意事项
二、cin和cout1、注意使用连续申请的内存时,别越界;
2、一定要先用new申请内存,在使用;
3、千万记得释放后空置指针,别让他变成野指针
一、使用
int a, b, c, d, e, f; //输入 cin >> a >> b >> c >> d >> e >> f; //输出 cout << a<<"n"<< b<<"n" << c << d << e << f;
cin对应scanf
cout对应printf
'n'和endl(小写的L) 效果相同,都是换行
二、使用的准备
三、命名空间头文件:#include"iostream"
一、使用命名空间
1、直接使用std的命名空间
using namespace std;
2、单独使用
using std :: cin;
using std :: cout;
// :: 作用域符号
二、定义
1、命名空间是用来组织和重用代码的编译单元
2、为什么要用
namespace space { int num; void fun(); } namespace 命名空间的名称 { //命名空间的成员 }
三、注意事项
1、名称必须是合法标识符,名字不要和其他命名空间重复,一般是当前的项目名字和只记得英文名字
2、命名空间是可以在全局。也可以在局部定义的(只能在命名空间里在定义,好到在代码区定义,不能在栈区)
3、定义域在最后要加‘;’
4、命名空间的名字最好不要重名,否则就会变成同一个,相当于两个是连在一起的
四、命名空间的访问
1、在外面定义函数
namespace space { int num; void fun(); } void space::fun() { //内容 }
五、命名空间取别名
四、string的基本使用namespace 别名=原名;
一、string是什么
是std底下的一个类(字符串类型)
string是c++中字符串类,类似于字符数组
二、使用
1、头文件:
2、命名空间:std
string str1 = "skfg";//初始化 cout << str1 << " " << endl; str1 = "segdhskueg.h";//赋值 str1.length();//求长度,不包括结尾结束符 int len = str1.length(); cout << str1<<" "<五、补充 1、三目运算符
? :
C语言里返回常量,c++返回一个变量
2、c++的函数是必须要写返回值类型
3、函数返回值的时候不要返回局部变量和栈区地址
4、const 在C语言里可以用指针绕过去,c++不行
c++里可以用const限定常量做数组的下标
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)