【问题标题】:Pass array from one function to another将数组从一个函数传递到另一个函数
【发布时间】:2018-01-25 14:38:50
【问题描述】:

这就是我想做的:

int randomtal(void){
  int loop;
  int tal[10];
  srand(time(0));

  for(loop = 0; loop < 10; loop++){
      tal[loop] = rand() % 10+1;
  }
  return tal;
}


int upp1(int argc, const char * argv[]) {
   int Tal[10];
   Tal[] = randomtal();
   return 0;
}

只需 randomtal() 函数生成 10 个数字并将它们放入一个数组中。然后我想将此数组传递给upp1() 函数并将它们放入Tal 数组中。基本上在函数randomtal() 中复制tal[] 并将其传递给函数upp1() 中的Tal

【问题讨论】:

  • Tal[] = randomtal(); 是什么?
  • Tal[] 是我想在函数 upp1 和 randomtal() 中存储所有数字的数组;我是在调用那个函数来生成数字吗

标签: c arrays parameter-passing


【解决方案1】:

您可以更改函数以接受数组作为参数。并且由于数组作为函数参数实际上是指向数组第一个元素的指针,所以函数中对数组的更改会反映在调用者中。

void randomtal(int tal[10]){
  int loop;
  srand(time(0));

  for(loop = 0; loop < 10; loop++){
      tal[loop] = rand() % 10+1;
  }
}


int main(int argc, const char * argv[]) {
   int Tal[10];

   randomtal(Tal);

   return 0;
}

【讨论】:

  • 工作就像一个魅力。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-29
  • 1970-01-01
  • 2022-01-13
  • 1970-01-01
相关资源
最近更新 更多