C++ 为什么打印新int[]会给我一个c++;
我已经学会了使用括号[]将为您解引用指针。因此,当new int给出一个地址时,如果此代码不给您存储在该地址的值作为括号,则表示该内存空间中的内容:C++ 为什么打印新int[]会给我一个c++;,c++,memory,int,C++,Memory,Int,我已经学会了使用括号[]将为您解引用指针。因此,当new int给出一个地址时,如果此代码不给您存储在该地址的值作为括号,则表示该内存空间中的内容: cout << new int[3]; cout因为newt[C]没有被解析为(new T[C]。相反,它被解析为new(T[C])。也就是说,它分配一个数组类型的对象。它返回该数组第一个元素的地址,就像非数组new表达式返回新对象的地址一样 我已经学会了使用括号[]将为您解除对指针的引用 P>与C++中的许多其他事物一样,代码>
cout << new int[3];
cout因为newt[C]
没有被解析为(new T[C]
。相反,它被解析为new(T[C])
。也就是说,它分配一个数组类型的对象。它返回该数组第一个元素的地址,就像非数组new表达式返回新对象的地址一样
我已经学会了使用括号[]将为您解除对指针的引用
<> P>与C++中的许多其他事物一样,<>代码> []/Cord>在不同的上下文中有不同的含义。
在newint[3]
的上下文中,它不会取消对指针的引用。它为3个int
s的数组分配内存,并返回指向该内存的指针
线路
cout << new int[3];
你的学习来源是什么?如果您正在阅读有关new
的内容,您可能需要继续阅读。有两种形式的new
你应该知道。“我知道使用方括号[]将为你解引用指针”-不,这不对。方括号在不同的上下文中意味着不同的东西——C++是一种符号。在所有的情况下,相同的符号并不总是相同的。我已经阅读了初学者的书,谢谢,我不知道方括号在不同的上下文中有不同的含义几个月,忘记“新”和指针。如果你的初学者的书开始讨论它们,把它寄回去。好的,谢谢。我不知道它在不同的上下文中有不同的含义。
int* ptr = new int[3];
cout << ptr;
int* ptr = new int[3];
cout << ptr[0];
cout << (new int[3])[0];