如果参数传递机制是copy-in-copy-out,如Ada中的in out,那么下面的类C程序会产生什么结果?执行过程中swap(v, list[v])
,v
会更新为3。复制出来的时候,第二个参数的结果是复制到list[3]
,还是list[1]
?
swap(int x, int y){
int t = x;
x = y;
y = t;
}
main(){
v = 1;
int list[5] = {1,3,5,7,9};
swap(v, list[v]);
print v, list[0...4];
}