关于值传递(高手请无视)

值传递是什么样子的呢 

 

int main(void)

{

     int a,b;

 

     ...

 

     swap(a,b);

}

int swap(int x, int y)

{

     int temp;

     temp =a;

     a = b;

     b = temp;

}

这种方式显然是不可以的,但是初学者很难理解为什么这样不可以。  很多时候 这个时候,很多大神牛人会扶一下眼镜,脸上闪过一丝阴险的骄傲,然后说这是一种值传递方式。

 

其实这个很好理解,在执行swpa(a,b)时,系统做了这样的一件事,就是

 

x=a;

y=b;

 

 

然后再对x y进行操作

 

那请问 下面对x y进行的操作 会影响到a b 吗?我想任何一个智商正常的人都知道答案。

这就是为什么值传递不会改变原数值。

 

这就是值传递,函数中使用的仅仅是原数据的一个拷贝 当然不会影响到原值

posted @ 2011-06-09 17:15  不愿透露姓名的高杨  阅读(147)  评论(0编辑  收藏  举报