嗨嗨嗨5749 2022-06-02 16:33 采纳率: 90%
浏览 28

c语言形参与实参之间的传递程序不懂

p,q为x,y的指针,传的是地址,为什么a,b的地址与p,q的地址不同?
在第二次传值中,x,y的地址也与a,b的地址也不同。

#include<stdio.h>
void fun( int  *a, int *b )
{ 
    int  *c; 
    c=a; 
    a=b; 
    b=c;
    printf(" &a = %d\t&b = %d\n",&a,&b);
}
void main()
{ 
    int x=3,y=5,*p=&x,*q=&y;
    fun (p,q); 
    printf (" p = %d\t q = %d\n\n\n",p,q);
    fun (&x,&y); 
    printf(" p = %d\t q = %d\n",p,q);
}

  • 写回答

2条回答 默认 最新

  • 赵4老师 2022-06-02 17:19
    关注

    单步调试时,打开汇编窗口,寄存器窗口,内存窗口边看边理解。

    评论

报告相同问题?

问题事件

  • 修改了问题 6月2日
  • 修改了问题 6月2日
  • 修改了问题 6月2日
  • 创建了问题 6月2日

悬赏问题

  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了
  • ¥15 陆空双模式无人机怎么做
  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
  • ¥15 C#中的编译平台的区别影响
  • ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
  • ¥15 电脑蓝屏logfilessrtsrttrail问题