
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条)