问答详情
源自:3-2 使用gdb调试案例

形参的指针赋值问题

声明 change 函数时,如果是 void change(int a, int b),调用时如果是 change(c , d),那么我们知道是把 c 的值赋予change函数中的a,d 的值赋予change函数中的 b。

这里的change函数变成了 change(int *a, int *b), 调用时为 change(&a, &b),按理来说,应该是把 &a 的值(即变量 a 的内存地址)赋予 *a, &b 的值赋予 *b,可是按教程的意思,这里是把 &a 的值赋予了 a,而非 *a, 为什么呢?

提问者:六个蒸蛋 2019-10-30 11:23

个回答

  • _及時行樂
    2019-11-15 14:34:57

    int*可以理解为一种数据类型,和int一样,int*是申明一个地址变量a,a用来接收传入的地址

  • 六个蒸蛋
    2019-11-08 17:23:09

    知道了, int* a,声明的是变量 a,而非 *a,且这里的 a 是指针变量,储存的是内存地址。所以这里是把 &a 的值赋予了 a。

  • 慕妹9050753
    2019-11-04 14:02:30

    int *a 是定义一个指向int类型数据的指针a,这里的*表示a是个指针,而不是你理解的取a中内容