以下声明之间有什么区别?
list<int> myList;
list<int> *myList=new list<int>;
一个声明是否更适合某个特定的例子而不是另一个或者它们只是说不同的方式吗? 以下声明之间有什么区别?
list<int> *myList=new list<int>;
list<int>* myList=new list<int>;
上述声明之一是错误还是相同?
答案 0 :(得分:0)
主要区别在于第一个语句是值类型,第二个是指针类型。
第一个语句为堆栈上的list<int>
分配所需的内存,第二个语句在堆栈上分配类型为list<int>*
的指针所需的内存,并分配和填充所需的内存在堆上列出。
编辑:回答第二个问题:
list<int> *myList=new list<int>;
和
list<int>* myList=new list<int>;
只是陈述同一事物的不同方式。对于在变量名称旁边播放星形有不同的论据。