sfvs_
2021-08-13 11:41
采纳率: 100%
浏览 33

结构体变量和结构体指针作参数为什么一个实参不变,一个变?

在结构体变量作参数的时候,c的值在主函数经过调用后再输出,没有变化。可以认为函数f的参数a,f内定义的变量b,和主函数内定义的变量c是相互独立的吗?c的值传递给a,b的值赋值给a,但是c不变,这样理解对吗?

img

但是结构体指针作参数时主函数中定义的结构体变量c却发生了变化。c的地址传递给a,b的值赋值给a,这里的a能代表c吗?
img

img

  • 收藏

1条回答 默认 最新

  • BBS-P 2021-08-13 12:52
    已采纳

    可以这么理解,因为a,b,c存储的地址都不一样.而且a,b为f函数内变量,f函数结束调用就释放掉了.

    举个简单的例子题主试试

    void f(int b,int c){
        int tmp = b;
        b = c;
        c = tmp;
    }
    f(a,b);
    

    输出下a,b看看值有没有交换

    已采纳该答案
    1 打赏 评论

相关推荐 更多相似问题