@我的名字很长22我回复了你那么多内容你都没看懂么……
17题,首先循环过程中每个数组元素都是在被改变之前使用的:
第一次循环,a(0)=12,a(1)=3,调用fun之后a(0)变成0,a(1)还是3;
第二次循环,a(1)=3,a(2)=8,调用fun之后a(1)和a(2)都不变,没有使用a(0);
第三次循环,a(2)=8,a(3)=5,调用fun之后a(2)变成3,a(3)还是5,没有使用a(0)和a(1);
……
然后,程序只输出函数值,没有输出数组元素值
所以数组元素改变了也不影响结果,ByRef的作用就消失了(单纯对于这个题的结果而言)
而28题,调用fun1之后,表达式后面还有一个x,即改变了x的值之后又使用了x,所以ByRef就产生了影响