- 论坛徽章:
- 2
|
问题1:
- struct S
- {
- size_t size;
- int j;
- int k;
- int l;
- };
- S s={sizeof(S)};
复制代码 C++标准有没有说,上面这种{}的初始化方式,会把j,k,l都赋成0值?
标准文档里面有说道吗?
问题2:
- int main()
- {
- int* pi=new int[5];
- for(int i=0;i<5;++i)
- cout<<pi[i]<<',';
- return 0;
- }
复制代码 这里pi的5个值都是没有初始化的,我运行的结果可能是:
6785200,6782912,0,0,0,
而如果我改成
- int main()
- {
- int* pi=new int[5]();//use ()
- for(int i=0;i<5;++i)
- cout<<pi[i]<<',';
- return 0;
- }
复制代码 这样,那么pi的5个元素打印出来就一定是0.
C++标准有没有规定指针数组也可以用()来赋值,()内不指定就是0?
很奇怪的是,如果我在括号里面指定一个初始值,例如7:
int* pi=new int[5](7);
那么这句话就编译不过了,为什么不行呢?
我希望把pi里面的元素都赋值为7,能否在初始化的时候就做到? |
|