zoukankan      html  css  js  c++  java
  • vc++6.0环境中swap函数

    Vc++6.0环境下Swap函数的变化

    #include<iostream>
    
    using namespace std;
    
    void main()
    
    {
    
           void swap(double&,double&);
    
           double a,b;
    
           cout<<"请输入两个数a和b:";
    
           cin>>a>>b;
    
           swap(a,b);
    
           cout<<"a="<<a<<"b="<<b;
    
    }
    
    void swap(double &x,double &y)
    
    {
    
           double temp;
    
           temp=x;
    
           x=y;
    
           y=temp;
    
    }

    运行结果如下:

     

    显示并没有交换。把程序稍微改一下:

    #include<iostream>
    
    using namespace std;
    
    void swap(double&,double&);
    
    void main()
    
    {
    
                  double a,b;
    
           cout<<"请输入两个数a和b:";
    
           cin>>a>>b;
    
           swap(a,b);
    
           cout<<"a="<<a<<"b="<<b;
    
    }
    
    void swap(double &x,double &y)
    
    {
    
           double temp;
    
           temp=x;
    
           x=y;
    
           y=temp;
    
    }
    

    将swap函数声明放在main函数的外面。

    为什么声明放在里面没有交换呢?通过调试发现,我们定义的swap函数根本没有执行,而是执行了系统里的同名swap函数,这个函数并没有完成交换的功能。

       再把程序改一下:

    #include<iostream.h>
    
    void main()
    
    {
    
           void swap(double&,double&);
    
           double a,b;
    
           cout<<"请输入两个数a和b:";
    
           cin>>a>>b;
    
           swap(a,b);
    
           cout<<"a="<<a<<"b="<<b;
    
    }
    
    void swap(double &x,double &y)
    
    {
    
           double temp;
    
           temp=x;
    
           x=y;
    
           y=temp;
    
    }

    运行结果如下:

    这次完成了交换,这事因为传统的头文件<iostream.h>里并没有包含同名的swap函数。

  • 相关阅读:
    pip install MySQL-python 失败
    E: Unable to correct problems, you have held broken packages
    git 提交顺序
    git 分支
    ubuntu 安装git
    ubuntu 有些软件中不能输入中文
    ubuntu 完全卸载mysql
    Linux中常用操作命令
    基于注解的Spring AOP的配置和使用
    log4j配置详解
  • 原文地址:https://www.cnblogs.com/albert1017/p/2738024.html
Copyright © 2011-2022 走看看