(假设这些都不是真正静态成员,但你的意思是他们没有动态分配。)
当你交换阵列,这些阵列不动;只有它们的内容被交换。
(数组不是指针)
如果交换指针,它不起作用的原因是指针指向它们“原始”对象的数组成员。
如果您不交换它们,它们会一直指向它们创建的数组。
Ilustrating例如:
起点:
Object A: mArray starts at 0x1000; mStart is 0x1000; mEnd is 0x1014
Object B: mArray starts at 0x2000; mStart is 0x2000; mEnd is 0x2014
swap
而不指针交换后:
Object A: mArray starts at 0x1000; mStart is 0x1000; mEnd is 0x1014
Object B: mArray starts at 0x2000; mStart is 0x2000; mEnd is 0x2014
swap
与指针交换后:
Object A: mArray starts at 0x1000; mStart is 0x2000; mEnd is 0x2014
Object B: mArray starts at 0x2000; mStart is 0x1000; mEnd is 0x1014
交换对象不会(不应该)影响静态数据成员,因为**静态数据成员不与任何对象**关联。不知道更多关于你的案例的语义,我们不能回答更多的问题。这味道像[XY问题](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) – bolov
请提供一个[MCVE]没有它你的问题是无法回答的。 – bolov
创建一个编译并运行的简单*示例,它可能会回答你的问题。 – WhozCraig