new/delete 的使用要点

摘要:
新运算符的使用比malloc函数简单得多,例如:int*p1=malloc;int*p2=newint[长度];这是因为new内置了sizeof、类型转换和类型安全检查功能。对于非内部数据类型的对象,new在创建动态对象时完成初始化。如果对象有多个构造函数,则新语句也可以有多个形式。1#include<iostream>23/*使用单独的命令行或您自己的getch、system或putloop*/4使用namespacestd运行此程序;5int main{6//声明数组、变量和指针变量7int a[]={1,2,3,4,5,6};8英寸*ip1,*ip2;910//测试指针11ip1=a的赋值操作;12ip2=ip1;13cout˂˂“*ip1=”˂˂˂˂endl;14cout˂˂“*ip2=”˂˂˂˂endl;1516//测试指针17ip1++的自增自减操作和组合操作;18ip2+=4;19cout˂˂“*ip1=”˂˂˂˂endl;20cout˂˂“*ip2=”˂˂˂ip1之间的关系运算;24cout˂ip1=”˂˂n˂˂endl;25cout˂˂“ip2!=NULL)˂˂endl;2627//指针变量之间的减法28n=ip2-ip1;29cout˂“ip2-ip1=”˂˂n˂˂end1;30return0;31}

运算符 new 使用起来要比函数 malloc 简单得多,例如: int *p1 = (int *)malloc(sizeof(int) * length); int *p2 = new int[length]; 这是因为 new 内置了 sizeof、类型转换和类型安全检查功能。

对于非内部数据类型 的对象而言,new 在创建动态对象的同时完成了初始化工作。如果对象有多个构造函数, 那么 new 的语句也可以有多种形式。

 1 #include <iostream>
 2 
 3 /* run this program using the console pauser or add your own getch, system("pause") or input loop */
 4 using namespace std;
 5 int main(int argc, char** argv) {
 6     //声明数组、变量和指针变量
 7     int a[]={1,2,3,4,5,6};
 8     int *ip1,*ip2;
 9 
10     //测试指针的赋值运算
11     ip1=a;
12     ip2=ip1;   
13     cout<<"*ip1="<<(*ip1)<<endl;
14     cout<<"*ip2="<<(*ip2)<<endl;
15 
16     //测试指针的自增自减运算和组合运算
17     ip1++;  
18     ip2+=4; 
19     cout<<"*ip1="<<(*ip1)<<endl;
20     cout<<"*ip2="<<(*ip2)<<endl;
21     
22     //测试指针变量之间的关系运算
23     int n=ip2>ip1;
24     cout<<"ip2>ip1="<<n<<endl;
25     cout<<"ip2!=NULL="<<(ip2!=NULL)<<endl;
26 
27     //指针变量之间的减法
28     n=ip2-ip1;
29     cout<<"ip2-ip1="<<n<<endl;
30     return 0;
31 }

免责声明:文章转载自《new/delete 的使用要点》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇oracle利用循环批量检索对应的数据imx6q 添加intel PCIE网卡下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

VMP加壳(二):VMP的虚拟化原理

由于CPU只能识别和执行二进制文件,并直接让硬件CPU执行虚拟机的二进制代码,因此只能考虑通过纯软件模拟虚拟机执行代码指令。为了在软件级别模拟CPU执行二进制代码指令,一般的虚拟机指令要么是操作寄存器,虚拟机指令的处理程序必须模拟这些函数。它用于指示虚拟CPU当前执行的代码。为了满足上述要点,2。VMP虚拟机的执行过程(1)考虑启动VT。...

IOS崩溃日志解析(crash log)

IOS的应用程序少不了crash,互联网统计分析工具友盟有一项目错误分析的功能,专门用于应用程序崩溃日志统计,最近研究友盟上统计到的崩溃日志,在此对崩溃日志做一个简单的总结。否则,应用将被iOS终止,并产生低内存崩溃报告。这样,我们去我们的dSYM文件看看我们的UUID是否和崩溃日志上的UUID一致,只有dSYM文件的UUID和崩溃日志上的UUID一致,我们...

学习Python3 天眼查 爬虫

在开始学习Python时,我不想看基础知识,而且我的记忆力很差。我记不住那些语法,所以我直接去了这个项目。这是相当深刻的。刚好公司有情况需要检查企业的信息,所以我想成为一名爬虫。那些有验证码的人不愿意这样做。这是个大问题。我选择了天眼查,跳过检查过程,直接写下结果。总结的步骤如下:首先,天眼查最大的障碍是字体问题。本网站上有介绍,大致意思是网页上显示的一些字...

JS获取当前时间

如果有更好的方法,请提出建议。进一步解释如下:varmyDate=newDate();我的日期。getYear();//获取当前年份(2位数)myDate getFullYear();//获取完整的年份(4位数,1970-???=0)||);}//----------------------------------------------//日期格式//格式...

docker安装MySQL5.7示例!!坑,ERROR 1045 (28000): Access denied for user

处理mysql1045错误1.在/usr/local/mysql/conf中添加一个文件。d目录:mysql文件的内容是:[mysqld]skip-grant-tables2重新启动mysql:dockerstartmysql5.73进入docker:dockerexec-itmysql5.7bash4登录mysql:mysql-uroot-p5将root密...

Linux shell 判断字符串为空等常用命令

-----------------------------------------------------------------------------------------Shell Basic运算符与其他编程语言一样,Shell支持多种运算符,包括:算术运算符、关系运算符、布尔运算符、字符串运算符、文件测试运算符、不支持简单数学运算的本机bash,可...