[问题] c++函式资料的问题

楼主: s52222b (陈猪静)   2016-08-17 19:44:01
各位好 小妹我是c++自学初新者
最近学到函式的部分 小妹我利用阵列跟函数写了一个
计算阵列平均值、中位数、以及两个数相加的简单程式
一开始的average没有什么问题,但是在计算中位数时
利用了sort函式排序,进而计算出中位数,
但是main function中的阵列排序竟然被sort影响
原本阵列{1,2,10,4,8,7,6,5,9,3}
但是经过sort函式后 main的资料被改变了
经过sort后的main{1,2,3,4,5,6,7,8,9,10}
这是我觉得纳闷的地方,因为照理说函式部会影响到main的值
因此我在最下面写了一个
x=x+y的函式,可是在最后的结果中main的x并没有
被x=x+y影响
为什么经过排序后main的阵列排序被影响了呢!!!!!!
求c++大神解惑
附上我的程式码http://ideone.com/P43RhC
作者: Caesar08 (Caesar)   2016-08-17 20:04:00
for(int i=0;i<=as;i++)sort(answer,10);因为array decay to pointer
楼主: s52222b (陈猪静)   2016-08-17 20:07:00
照理说MAIN理的东西应该部会被函式影响
作者: wawi2 (@@)   2016-08-17 20:09:00
照理说会影响
楼主: s52222b (陈猪静)   2016-08-17 20:11:00
那为什么下面的X=X+Y直没有被影响阿抱歉我初学者很多观念不太懂
作者: james1022jk (雁)   2016-08-17 20:15:00
X=X+Y你找一下call by value就会知道了
作者: Caesar08 (Caesar)   2016-08-17 20:20:00
因为你的m是传值,average与sort是pointer
作者: yvb   2016-08-17 20:22:00
楼主: s52222b (陈猪静)   2016-08-17 20:24:00
感谢各位哥的解答 小妹懂了
作者: fatrabitree (胖兔子)   2016-08-18 00:01:00
找中位数不用sort

Links booklink

Contact Us: admin [ a t ] ucptt.com