JS

  1. function selectSort(array) {
  2. let minIndex
  3. for (let i = 0;i<array.length;i++){
  4. minIndex = i;
  5. for (let j = i+1;j<array.length;j++){
  6. if(array[j]<array[minIndex]){
  7. minIndex = j;
  8. }
  9. }
  10. swap(array,i,minIndex)
  11. }
  12. return array
  13. }
  14. function swap(array,a,b){
  15. let c
  16. c = array[a];
  17. array[a] = array[b];
  18. array[b] = c;
  19. }

c语言

形参与实参
传引用和传地址

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. void Swap(int a,int b)
  4. {
  5. int tmp = a;
  6. a = b;
  7. b = tmp;
  8. }
  9. int main()
  10. {
  11. int x = 10;
  12. int y = 20;
  13. Swap(x,y);
  14. printf("%d %d\n", x, y);
  15. system("pause");
  16. return 0;
  17. }

定义函数里的参数叫做形参(形式参数)调用函数里的参数叫做实参(实际参数)
函数的形参是实参的一份拷贝(副本),上面的代码中,只是交换定义函数里的参数,只对副本(形参)进行交换当然不会实现对实参(我们实际要交换的变量)的交换。也就是说:我们只是交换a和b的值,并没有对x和y进行交换,我们真正要交换的是a和b的值。
这个时候就要使用传指针的方法来修改函数外部的变量。对形参进行指针类型的转变,相当于把两个毫无关系的参数连接起来

  1. void Swap(int* a,int* b)
  2. {
  3. int tmp = *a;
  4. *a = *b;
  5. *b = tmp;
  6. }
  7. int main()
  8. {
  9. int x = 10;
  10. int y = 20;
  11. //这里传的参数是地址
  12. Swap(&x,&y);
  13. printf("%d %d\n", x, y);
  14. }