这样一个程序#include
using namespace std;
int main()
{
int *p=new int[10];
for(int i=0;i<10;i++)
{
p[i]=i+1;
cout<<p[i]<<' ';
}
delete []p;
return 0;
}
我可以不用for循环初始化这个数组吗???
不可以,如果初始化为0可以memset,
可以初始化同一个值,但是不能用不同的值
int *p=new int[10](0);
C++11的特性允许:
int *p = new int[10]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
VS2013以及之后的版本默认支持。gcc/clang 需要开启c++11选项 -std=c++11
for循环是赋值,不是初始化。
对这个还有个疑惑是都动态分配空间了为什么还要规定数组的大小