|
|
1
18
指针并不坏,它们很容易出错。在新的语言中,他们已经找到了做同样事情的方法,但却减少了被射中的风险。 但是指针没有什么问题。去爱他们吧。 对于你的例子,为什么你希望x和y都指向同一个内存?为什么不一直叫它x呢?
|
|
|
2
12
I'll start with one of my favorite Scott Meyers quotes :
但是,在编写良好的C++应用程序代码时,不应该使用原始指针。从未。您应该始终使用一些抽象层,而不是直接使用指针:
C++具有范围绑定资源管理的形式的自动资源管理(SBRM,也称为资源获取是初始化,或RAII)。使用它。如果你不使用它,你就错了。 |
|
|
3
6
|
|
4
3
真正的“指针”有两个特点。
通常为指针定义的算术运算是:
托管语言通常会引导您走上“引用”的道路,而不是指针。引用还保存另一个对象(或原语)的地址,但不允许使用算术。 除此之外,这意味着您不能使用指针算术来遍历数组的末尾,并使用错误的类型处理其他一些数据。另一种形成无效指针的方法是在这种环境中使用垃圾收集。 这一起确保了类型安全,但却严重丧失了通用性。 |
|
|
5
3
我试着直接回答OP的问题:
这背后的原因是这些语言中的托管内存模型。在C#(或Python,或Java,…)中,资源的生命周期和内存的使用是由底层运行时自动管理的,或者由它的 垃圾收集器 ,准确地说。简而言之:应用程序无法控制资源在内存中的位置。它没有指定,甚至不能保证在资源的生命周期内保持不变。因此,指针作为“虚拟或物理内存中某物的位置”的概念是完全不相关的。 |
|
6
0
正如前面提到的,如果你有一个庞大的应用程序,指针可能会出错,而且实际上会出错。这就是我们有时看到Windows由于创建空指针而出现问题的原因之一!我个人不喜欢指针,因为它会导致可怕的内存泄漏,无论你如何管理好你的内存,它最终会在某些方面追捕你。在处理图像处理应用程序时,我在OpenCV中经历了很多。有很多指针在周围浮动,把它们放在一个列表中,然后再检索它们,这给我带来了问题。但是,使用指针也有好的一面,这通常是优化代码的好方法。这完全取决于你在做什么,你必须满足什么样的规格,等等。 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |
|
|
tTt · 使用堆栈中的值重新分配指针 1 年前 |
|
|
manuel · 现代C中空指针的替代方案++ 1 年前 |