q13881059078 2017-10-15 10:38 采纳率: 0%
浏览 632
已结题

c语言指针问题,有大神没有

在公开课上看见的代码
void
swap(*a,*b)
{
int tem =*a; (1)
*a=*b; (2)
*b=tem; (3)
}
假设a=1存在地址123,b=2存在地址456,于是*a=123,*b=456,在(1)后tem=1,*tem=123(交换后结果为a=2,*a=456,b=1,*b=123)还是*tem为另外值如xxx(交换后结果为a=2,*a=456,b=1,*b=xxx);
在(1)中tem是产生新xxx空间,然后复制a的值再指过去。还是直接指向a的原有空间123。(3)中是直接将*b指向tem指向的空间吗。

  • 写回答

3条回答 默认 最新

  • Matrixes 2017-10-16 01:05
    关注

    在函数的参数里看到“*”,指的是调用该函数时要传指针(地址);
    在语句里看到“* ”时,比如*a,不是指取a的值,而是指把a的值作为地址,从该地址去取值。

    评论

报告相同问题?

悬赏问题

  • ¥15 计算二重积分∫∫e^(x+y)dxdy,其中0≤x≤1,0≤y≤1,试分别用复合辛普森公式(取n=4)以及高斯求积公式(取n=4)计算积分 给出matlab程序
  • ¥15 opencv 无法读取视频
  • ¥15 用matlab 实现通信仿真
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了
  • ¥15 python:excel数据写入多个对应word文档
  • ¥60 全一数分解素因子和素数循环节位数
  • ¥15 ffmpeg如何安装到虚拟环境
  • ¥188 寻找能做王者评分提取的