这不是MFP的大bug。你知道,程序(不管是MFP,VB.net,C++,JAVA还是别的什么语言)传递参数有两种方式,一种是传递值,一种是传递引用。对于一个数组来讲,传递的都是引用。所以,如果你把一个数组作为参数传递给子函数,在子函数中改变了数组的某一个元素,主函数是可以看见的。 在你的程序中,虽然没有把a直接传递给子函数,但是你把a赋值给d,然后把d作为参数传递给子函数了。把a赋值给d是把a的引用赋值给d,这样实际上和把a作为数组引用直接传递给子函数是一回事。如果你想要将子函数和主函数隔离,请使用 d = clone(a)