Bey-Hey 2022-03-09 17:18 采纳率: 85.7%
浏览 41
已结题

引用型参数运行不成功

问题遇到的现象和发生背景 引用型参数运行结果整数不交换
问题相关代码
 #include<stdio.h>
 int temp;
 //指针型形参
int  swap1(int *a,int*b)
 {
     temp=*a;
     *a=*b;
     *b=temp;

 }
 //引用型形参
int swap2( int&a,int&b)//c++中形参前的"&"符号不是指针运算符,而是引用
 {
     temp=a;
     a=b;
     b=temp;

 }
 int main()
 {
     int x,y;
     printf("Please input two numbers:");
     scanf("%d,%d\n",&x,&y);
     swap1(&x,&y);    //此处需要传参
     printf("指针型参数输出:%d,%d\n",x,y);
     swap2(x,y);
     printf("引用型参数输出:%d,%d\n",x,y);
 }


运行结果指针型整数交换,引用型整数不交换
我想要达到的结果 运行后指针型和引用型整数都交换
  • 写回答

3条回答 默认 最新

  • 谛凌 2022-03-09 17:43
    关注

    你是不是觉得两个输出的结果不一样,就认为他们没交换?
    其实交换两次,就变回你输入的样子了

     #include<stdio.h>
     int temp;
     //指针型形参
    void swap1(int *a,int*b)
     {
         temp=*a;
         *a=*b;
         *b=temp;
     
     }
     //引用型形参
    void swap2( int &a,int &b)//c++中形参前的"&"符号不是指针运算符,而是引用
     {
         temp=a;
         a=b;
         b=temp;
     }
     int main()
     {
         int x,y,a,b;
         printf("Please input two numbers:");
         scanf("%d,%d\n",&x,&y);
         a=x;
         b=y;
         swap1(&x,&y);    //此处需要传参
         printf("指针型参数输出:%d,%d\n",x,y);
         swap2(a,b);
         printf("引用型参数输出:%d,%d\n",a,b);
     }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月17日
  • 已采纳回答 3月9日
  • 创建了问题 3月9日

悬赏问题

  • ¥15 jscolor 赋值input 没能引起前边色框的颜色变化
  • ¥100 驱动程序在\device\raidport1 上检测到控制器错误
  • ¥15 JS报错变量未定义,如何解决?
  • ¥20 找辅导 初学者 想实现一个项目 没有方向
  • ¥15 研究方向遥感场景识别分类。求深度学习基础课程
  • ¥15 关于渗漏场的电场分布模拟
  • ¥24 matlab怎么修改仿真初始时间
  • ¥15 两分段线性回归模型分析阈值效应
  • ¥15 前端和后端代码都没报错,但是点登录没反应的?
  • ¥100 需要远程解决QSQLITE问题!