这是mfp的大bug吗!?
mfp吧
全部回复
仅看楼主
level 6
星心醒醒 楼主
如图,在function plotnewtoncha()里,我没有对a进行任何改变其值的操作,可是最后输出的a的值却因为我调用函数而改变了,不知道是我哪里弄错了,还是mfp有问题,请各位吧友帮忙啊!
2018年04月12日 08点04分 1
level 6
星心醒醒 楼主
2018年04月12日 15点04分 2
level 1
这不是MFP的大bug。你知道,程序(不管是MFP,VB.net,C++,JAVA还是别的什么语言)传递参数有两种方式,一种是传递值,一种是传递引用。对于一个数组来讲,传递的都是引用。所以,如果你把一个数组作为参数传递给子函数,在子函数中改变了数组的某一个元素,主函数是可以看见的。
在你的程序中,虽然没有把a直接传递给子函数,但是你把a赋值给d,然后把d作为参数传递给子函数了。把a赋值给d是把a的引用赋值给d,这样实际上和把a作为数组引用直接传递给子函数是一回事。如果你想要将子函数和主函数隔离,请使用
d = clone(a)
2018年04月16日 12点04分 3
1