zoukankan      html  css  js  c++  java
  • 交换两个实参的值(c++)

    1. 引用

    #include <iostream>
    using namespace std;
    void swap( int &a, int &b )
    {
        int temp;
        temp=a; a=b; b=temp;
    }
    
    int main()
    {
        int x=3, y=5;
        cout<<" x= "<<x<<" y= "<<y<<endl;
        swap( x, y );
        cout<<" x= "<<x<<" y= "<<y<<endl;
        return 0;
    }
    

    2. 指针

    #include <iostream>
    using namespace std;
    void swap( int *a, int *b )
    {
        int temp;
        temp = *a;
        *a = *b;
        *b = temp;
    }
    
    int main()
    {
        int x=3, y=5;
        cout<<" x= "<<x<<" y= "<<y<<endl;
        swap( &x, &y );
        cout<<" x= "<<x<<" y= "<<y<<endl;
        return 0;
    }
    

    几个错误举例:

    错误示例1:(光改变形参是没有用的)

    #include <iostream>
    using namespace std;
    void swap( int a, int b )
    {
        int temp;
        temp=a; a=b; b=temp;
    }
    
    int main()
    {
        int x=3, y=5;
        cout<<" x= "<<x<<" y= "<<y<<endl;
        swap( x, y );
        cout<<" x= "<<x<<" y= "<<y<<endl;
        return 0;
    }
    

    错误示例2:(指针概念不清,不知道新定义的指针temp指向哪里)

    #include <iostream>
    using namespace std;
    void swap( int *a, int *b )
    {
        int *temp;
        *temp = *a;
        *a = *b;
        *b = *temp;
    }
    
    int main()
    {
        int x=3, y=5;
        cout<<" x= "<<x<<" y= "<<y<<endl;
        swap( &x, &y );
        cout<<" x= "<<x<<" y= "<<y<<endl;
        return 0;
    }
    

    错误示例3:(指针概念不清,交换了地址)

    #include <iostream>
    using namespace std;
    void swap( int *a, int *b )
    {
        int *temp;
        temp = a;
        a = b;
        b = temp;
    }
    
    int main()
    {
        int x=3, y=5;
        cout<<" x= "<<x<<" y= "<<y<<endl;
        swap( &x, &y );
        cout<<" x= "<<x<<" y= "<<y<<endl;
        return 0;
    }
    
  • 相关阅读:
    网络设备安全需求规格
    web安全法则
    Write Hole 问题
    如何同步master的代码到fork分支代码
    Self assignment
    Uninitialized scalar variable
    Operands of different size in bitwise operation
    Insecure Compiler Optimization
    negative array index read
    Unintended sign extension
  • 原文地址:https://www.cnblogs.com/yuzilan/p/10626174.html
Copyright © 2011-2022 走看看