orbslam2 双目 避障:在C语言中 这题怎么选~

来源:百度文库 编辑:中科新闻网 时间:2024/05/04 13:32:42
main()
{int a=10,b=20;
printf(“(1)a=%d,b=%d\n”,a,b);
swap(&a,&b);
printf(“(2)a=%d,b=%d\n”a,b);}
swap(int p,int q)
{int t; t=p; p=q; q=t;}

第二次输出时值时a,b的值已经互换过了!
因为swap调用函数是把a,b的地址传给p,q(注意a,b前面的取地址运算符),在被调用函数中已经将a,b的地址做了互换,所以第二次的输出是互换后的结果!
这个函数是按引用来传值的,不是按拷贝,注意两者之间的区别!如果是按拷贝来传值,那么值是不会变的,因为它不能改变主函数中的原值!

选(1)

选(1)啊,如果要实现交换要用指针