我知道这已经被散列了很多次,但我今天遇到的一个案例动摇了我对指针数学/数组索引的理解。正如我一直理解的那样,&mybuff[10]和(&mybuff+10)是引用同一内存的等效方法。但是我花了一个上午的时间来处理一个案例:memcpy(&mybuff+10,&in,8);在启用优化编译时溢出缓冲区,在编译调试时工作正常。同时,memcpy(&mybuff[10],&in,8);在这两种情况下都工作得很好。非常感谢任何想法或指示。 最佳答案 为了示例,我将为mybuff发明一个声明:charmybuff[123];现在,&mybuff