【问题标题】:Pointer in the definition of a function函数定义中的指针
【发布时间】:2018-01-28 01:16:24
【问题描述】:

我正在学习c,但是我理解指针的概念,但在这里我遇到了麻烦。函数定义中的指针是什么意思。这里 v 是在函数中定义的局部指针,因此返回它意味着只有值将被复制和返回,或者将返回指向该块的指针,因为我还了解到局部变量在函数执行之前只有生命周期。有人愿意解释一下,会很有帮助。

struct verpl * nieuw (int van, int naar, int aantal, register struct verplaatsing * lijst)
{
   register struct verpl * v = (struct verpl *) alloc(sizeof(struct verpl));
   aNieuw++;
   v->van = van;
   v->naar = naar;
   v->aantal = aantal;
    v->volg = lijst; // plaats het element vooraan in de lijst
     return (v);
}

函数调用

 lijst = nieuw (via, huidig->naar, huidig->aantal - 1, lijst);

【问题讨论】:

  • 首先:去掉registers;他们只会造成伤害。(第二:移除演员表)
  • 你确定alloc 吗?
  • 我不明白您为什么将lijst 作为函数参数struct verplaatsing * 的参数传递,然后将函数返回值分配给它,即struct verpl * 类型。它们是不同的类型。
  • 请分这么长的句子,难懂是对的
  • @WeatherVane 有 3 个递归调用,而 lijst 是一个指针。

标签: c


【解决方案1】:

返回的是alloc()返回的指针值

v是本地的,返回指向v的指针不好,但是v指向的不是本地的,所以返回是有效的。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-05-03
  • 1970-01-01
  • 1970-01-01
  • 2021-11-02
  • 1970-01-01
  • 1970-01-01
  • 2016-05-12
  • 1970-01-01
相关资源
最近更新 更多