#include<stdio.h>voidfun(int*a,int*b){int*k;k=a;a=b;b=k;}voidmain(){inta=3,b=6,*x=&a,*y=&b;fun(x,y);printf("%d%d",a,b);}输出结果为什么是3,6我觉得应该是6,3啊...

展开全部
收起
5回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Aaron

    17人对此回答表示赞同

    你这里只是修改了指针变量的值,

    并没有修改指针所指向的变量的值

    原变量的里面的值不变!
    展开
    17
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 方旭

    16人对此回答表示赞同

    就是按楼上那样改的!!!!!!!!
    展开
    16
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 何加男

    4人对此回答表示赞同

    这行void fun(int *a,int *b) 改为 void fun(int *&a,int *&b)
    即传递指针的引用。因为你要交换的是a,b的地址,而不是函数 fun 中的形参
    展开
    4
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 杨承俊

    3人对此回答表示赞同

    fun()改为如下:

    void fun(int *a,int *b)
    {
    int k;
    k=*a;
    *a=*b;
    *b=k;

    }
    展开
    3
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Jina金呐

    1人对此回答表示赞同

    x,y,a,b之间都是独立的...你改变了x,y的指向,并没有改变a,b的值...
    展开
    1
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部