实际上 jimt 的回答可能是错误的。这取决于... :)例如,如果您使用的是 []uint8,那么像这样的操作p[2] = 5本质上是这样tmp = p[0..3] // this is 32 bittmp[2] = 5p[0..3] = tmp // yeah this is all fake syntax but you'll get it这是因为您的 CPU 是 32(甚至 64)位。所以这实际上更有效,尽管它看起来更复杂。但是如您所见,您正在写入 p[0,1,3],尽管您只想写入 p[2]。这可以创建一些有趣的错误来调试!:)如果您的数据是例如指向您的数据的指针,那么这个问题不应该发生,因为数组保证存储在内存中,这样只要您的数据与您的本机指令集一样长,这个问题就不会发生。