qq_35156130
2017-05-19 08:04
采纳率: 33.3%
浏览 1.0k
已采纳

求教大佬,关于C语言结构体指针的问题

我定义了一个结构体数组,然后题目要求按选择法把结构体内的数据从小到大排序。选择排序我是定义了一个函数,函数的参数是两个结构体指针(struct Stu_Score *p,struct Stu_Score *q),函数体内定义了一个中间指针变量struct Stu_Score *temp,在交换的时候就是用中间指针变量对p和q交换,结果这样并没有出现语法错误,但是在运行的时候显示已停止工作。后来我把指针变量还为普通的结构体变量,就是把*temp改成了temp(相应的调用时的->改成了.),结果这样运行就没问题了,请教大佬这是为什么

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • Demo_gu__ 2017-05-19 08:26
    已采纳

    很经典的问题 ,画个内存四区图就知道了

    点赞 打赏 评论
  • shen_wei 2017-05-19 08:16
     void fun(int *p,int *q)
    {
        int nTemp;
        nTemp = *p;
        *p = *q;
        *q = nTemp;
    }
    
    点赞 打赏 评论

相关推荐 更多相似问题