int *p1 = new int[10]; int *p2 = new int[10](); 有啥区别?
答案:3 悬赏:30
解决时间 2021-03-23 03:36
- 提问者网友:你在我眼中是最帅
- 2021-03-22 07:57
谢谢!
最佳答案
- 二级知识专家网友:废途浑身病态
- 2021-03-22 08:09
我的理解是
int *p2 = new int[10]();
申请了空间,而且进行了初始化
int *p1 = new int[10];
只申请空间,没有进行初始化
原因:
对于一些结构体,我们可以看到()往往表示构造函数,int是基本类型算初始化吧
理由:
你可以测试输出两种的值
你会发现p1的值未知,而p2清零了
int *p2 = new int[10]();
申请了空间,而且进行了初始化
int *p1 = new int[10];
只申请空间,没有进行初始化
原因:
对于一些结构体,我们可以看到()往往表示构造函数,int是基本类型算初始化吧
理由:
你可以测试输出两种的值
你会发现p1的值未知,而p2清零了
全部回答
- 1楼网友:零负荷的放任
- 2021-03-22 09:00
根本不用那么麻烦啊
void swap(int * p1,int *p2){ int a;a=*p1;*p1 = *p2; *p2=a; }
直接定义一个int a 就好了,干嘛还要定义一个指针变量,还是一个野指针
- 2楼网友:野心和家
- 2021-03-22 08:27
这里的int *p = new int[10]; 申请10个整数的空间,但不进行初始化,
相当于malloc
int *p = new int[10]; 申请10个整数的空间,并对其进行初始化
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |