声明变量(内存中的确切位置)

时间:2014-08-26 18:34:31

标签: c# c++

如果我有一个班级,是否可以向这个班级的实例宣布"并排"在记忆中?

此外,是否可以将指针从一位移位到另一位?

1 个答案:

答案 0 :(得分:3)

在C ++中,你绝对可以做到这一点。它叫做数组

实际上,数组索引与说*(pointerToBeginng + index)相同。我不确定你的意思"比特移位指针"但你当然可以做指针运算来切换元素。

C#数组可能是相同的(不是很确定),但你通常不会在C#中使用指针。这篇文章(MSDN)表明C#中的数组是连续的,但是来自C#2.0,因此它可以已经改变了(即使这不太可能) )。

但是,在C#中,所有类都是引用类型,因此它们的数组只是一个引用数组。您仍然必须使用引用(基本上是指针)来访问实际对象。从这个意义上讲,你不能声明一个类的两个实例,并保证它们是并排的"。这通常无关紧要,因为你不能在C#中使用指针(你可以,但你通常不会)。

可以使用struct而不是class来允许C#中的连续对象块。此时,指针算法将像C ++一样工作。