C++ 是`&;变量=null;`可能的
如果将指针设置为null,则该变量将被删除。它不能再使用,也不会占用您的存储空间。 指针的名称表示它的值。它的值总是C++ 是`&;变量=null;`可能的,c++,pointers,syntax,C++,Pointers,Syntax,如果将指针设置为null,则该变量将被删除。它不能再使用,也不会占用您的存储空间。 指针的名称表示它的值。它的值总是&someVariable。 所以我可以这样做:&someVariable=null 当我写这个时,我对C++非常陌生,所以我有很多误解。 要删除指针,必须删除ptr而不是通过ptr=nullptr将其设置为null &someVariable是一个右值,因此它无法获得任何赋值 它是0,NULL或nullptr,而不是NULL 总之,您不应该delete&any,即使你很幸运并且它
&someVariable
。
所以我可以这样做:&someVariable=null代码>
当我写这个时,我对C++非常陌生,所以我有很多误解。
要删除指针,必须删除ptr
而不是通过ptr=nullptr将其设置为null代码>
&someVariable
是一个右值,因此它无法获得任何赋值
它是0
,NULL
或nullptr
,而不是NULL
总之,您不应该delete&any代码>,即使你很幸运并且它可以编译。只需删除分配任何内容时得到的指针
不,您不能&someVariable
是一个右值。它无法分配给任何人,尝试也毫无意义
此外,你想做什么的想法是毫无意义的。函数变量在堆栈上分配,只有在函数返回时才释放。无法释放全局变量。如果堆不能以这种方式工作,则无法释放已分配结构中的变量
变量不会被删除。这是毫无意义的。内存的释放取决于其分配方式:
- 关于堆栈->函数返回
- 分配有
new
->delete
或auto_ptr
或其他智能指针(调用delete
)
- 分配了
malloc
->免费
- 全局变量->进程退出
如果将指针设置为null,则该变量将被删除
不,不是
它不能再使用,也不会占用您的存储空间
事实并非如此
所以我可以这样做:&someVariable=null代码>
不可以。即使您编写了nullptr
,而不是不存在的null
,并且即使您可以修改内置类型的右值,它也只会将一些临时指针的值设置为nullptr
修改指针对它所指向的对象绝对没有影响。
听起来您对delete
和将指针设置为null感到困惑。您尝试过吗?不需要超过5分钟来抽出一些示例代码:“如果你设置一个指针为NULL,变量被删除”-不,C++中没有删除任何东西,如果你给NulLi设置一个指针,询问谷歌,但是忘记尝试。那么如何删除变量呢?SoloLearn告诉我必须将指针设置为null。那个应用程序必须由一个醉醺醺的泰迪熊编写。我不知道SoloLearn是什么,但是不要尝试从你手机上的随机应用程序中学习C++。获取。不,不是教程。一本书。一本合适的纸质书。我想你的意思是它是一个prvalue。那么指针只对全局变量有效吗?@JamesRoot:原来我是指rvalue(现在讨论细微差别毫无意义。@TimonPaßlick:指针对任何变量都很有效。“变量不会被删除。这是毫无意义的。”不,不是。Placement和non-Placement new/delete清楚地表明了这一点,当语言不适合你时,你可以控制对象的生存期。那么重载的操作符(&()
?@πάντα呢ῥεῖ: 您不能在内置类型上重载运算符&
。问题中哪里提到someVariable
是内置类型?@πάνταῥεῖ: 事实并非如此;相反,这是我回答的特定部分的前提。有可能创造出一个异常复杂的设计,以某种方式让给定的陈述产生预期的效果。但是,我有理由相信,在这种情况下,我们可以排除这种可能性。