C语言基础问题:求输出结果是5-6还是6-5?为什么?

如题

img

输出是5-6,因为交换的结果无法返回,穿指针可以解决问题。

你目前的代码输出是5-6
因为swap函数传的不是地址 实际上a b没有进行交换,所以输出是5-6
如果把swap函数的参数改为地址传入,那么交换之后地址指向的值做了交换a b才是真正交换了

#include<stdio.h>
#include<stdlib.h>
 void swap(int &a,int &b){
     int t=a; a=b;b=t;
                       
 }
                          
int main()
{
  int a=5;
  int b=6;
  swap(a,b);
  printf("%d-%d\n",a,b);
  return 0;
}

img

5-6你这函数参数传参为值引用,而不是指针传递