我知道new int()
和new int(10)
之间的区别。在第一种情况下,分配0,在第二种情况下,将10分配给新创建的int。但是new int {}
之间的关系是什么。我们使用{}进行数组初始化,如new a[]{4,5,6}
。但对于单变量,初始化时使用大括号的含义是什么?
/* Combined usage and initialized to 0*/
int *ptr2 = new int();
cout<<"*ptr2 = "<<*ptr2<<endl;
/* Allocated memory can be initialized to specific value */
int*ptr3 = new int(5);
cout<<"*ptr3 = "<<*ptr3<<endl;
int* ptr5 = new int{500};
cout<<"*ptr5 = "<<*ptr5<<endl;
答案 0 :(得分:3)
您的输出是:
*ptr2 = 0
*ptr3 = 5
*ptr5 = 500
你的情况没有区别。
但总的来说:
( expression-list ) (1)
= expression (2)
{ initializer-list } (3)
1)以逗号分隔的任意表达式列表和braced-init-lists 在括号中
2)等号后跟表达式
3)braced-init-list:可能为空,以逗号分隔的列表 表达式和其他braced-init-lists
答案 1 :(得分:0)
在int
(或任何整数类型,例如long
)的特定情况下,new int(10)
和new int{10}
之间没有区别。