关于C++一个程序存在疑问

img


这个程序结果为什么是m=4,n=2?
f1的实参是全局变量还是局部变量呢?
另外f1是void,没有返回值,怎么会改变m的值呢?

先解释你的第三个问题,函数能否改变参数的值取决于参数传递方式,(如果是传值调用,参数的值是不会变的),而不取决于返回值
第一个问题:在两次函数调用中,都是用传值的方式进行调用n,因此不会改变n的值,但m是传地址调用,会改变m的值
第二个问题:不清楚你在说什么