如果我有一个班级,是否可以向这个班级的实例宣布"并排"在记忆中?
此外,是否可以将指针从一位移位到另一位?
答案 0 :(得分:3)
在C ++中,你绝对可以做到这一点。它叫做数组。
实际上,数组索引与说*(pointerToBeginng + index)
相同。我不确定你的意思"比特移位指针"但你当然可以做指针运算来切换元素。
C#数组可能是相同的(不是很确定),但你通常不会在C#中使用指针。这篇文章(MSDN)表明C#中的数组是连续的,但是来自C#2.0,因此它可以已经改变了(即使这不太可能) )。
但是,在C#中,所有类都是引用类型,因此它们的数组只是一个引用数组。您仍然必须使用引用(基本上是指针)来访问实际对象。从这个意义上讲,你不能声明一个类的两个实例,并保证它们是并排的"。这通常无关紧要,因为你不能在C#中使用指针(你可以,但你通常不会)。
你可以使用struct
而不是class
来允许C#中的连续对象块。此时,指针算法将像C ++一样工作。