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()方法是无法完成任务的。

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

  • 相关阅读:
    009-Python-面向对象
    008-Python-模块
    007-Python函数-装饰器
    006-Python函数
    005-Python字典
    003-python列表
    PyCharm之python书写规范--消去提示波浪线
    001-python基础
    Java基础总结(一)
    High ASCII字符从bat文件到dos控制台的转化问题
  • 原文地址:https://www.cnblogs.com/starainDou/p/4715040.html
Copyright © 2011-2022 走看看