zoukankan      html  css  js  c++  java
  • 常见误区(一)

    无论是C/C++,还是java,默认情况是值传递,这就造成编写一般意义认为正确的交换两数的方法成为错误的。

    C++中可用指针或者引用方式避免

    #include<iostream>
    using namespace std;
    
    //一般认为,但是由于传过去的是两个值,所以变量值不改变
    void swap1(int a ,int b)
    {
    	int temp;
    	temp = a;
    	a = b;
    	b = temp;
    	
    }
    
    //采用引用的方法,书写简单易懂
    void swap2(int &a,int &b)
    {
    	int temp;
    	temp = a;
    	a = b;
    	b = temp;
    }
    
    //采用指针方式
    void swap3(int *a,int *b)
    {
    	int temp = *a;
    	*a = *b;
    	*b =temp;
    }
    int main()
    {
    	int swapa = 10;
    	int swapb = 20;
    	int swapc = 10;
    	int swapd = 20;
    	int swape = 10;
    	int swapf = 20;
    	swap1(swapa,swapb);
    	cout<<"swapa原来10,现在为:"<<swapa<<endl<<"swapb原来20,现在为:"<<swapb<<endl;
    	swap2(swapc,swapd);
    	cout<<"swapc原来10,现在为:"<<swapc<<endl<<"swapd原来20,现在为:"<<swapd<<endl;
    	swap3(&swape,&swapf);
    	cout<<"swape原来10,现在为:"<<swape<<endl<<"swapf原来20,现在为:"<<swapf<<endl;
    	
    	system("pause");
    }
    

     

    可以看出直接编写的swap1()方法是无法完成任务的。

    但是采用引用或者是指针的形式是行得通的。

  • 相关阅读:
    第十四周课程总结&实验报告
    第十三周学习总结&实验报告(八)
    第十二周学习总结
    第十一周课程总结
    第十周课程总结
    实验报告(七)&第九周课程总结
    软件工程作业02
    第一周博客作业
    2019春总结作业
    第十二周作业
  • 原文地址:https://www.cnblogs.com/starainDou/p/4715040.html
Copyright © 2011-2022 走看看