繁体   English   中英

&array[element] 是什么意思,为什么?

[英]What does &array[element] means and why?

我在 MPI 中使用 C 进行编码。我不明白 MPI_Send() 是如何工作的,或者 &array[element] 是否工作。

MPI_Send(&array[element],element_left,MPI_INT,i,0,MPI_COMM_WORLD);

这里array[]={1,2,3,4,5,6,7,8,9,10}element = 6element_left = 4 我理解array[element]=array[6]=7但为什么这个 function 选择 7,8,9,10? 我知道它会从数组中选择 4 个元素,但为什么我们在这里需要 & 并且只提供起始条目array[6]这个 function 如何能够选择下一个 3 个元素?

我以为我必须使用for循环或其他东西一个接一个地添加,但是当我在 Google 上搜索某些内容时,我得到了这段代码,经过这么多我仍然不明白。 请帮助我理解这段代码的落后之处。

大多数 MPI 例程采用三个 arguments:

  • 缓冲区地址
  • 元素计数
  • 元素的数据类型

所以通过&array[element],element_left,MPI_INT你指定element的元素作为缓冲区的开始,然后你将element_left许多整数发送。 您将计数命名为element_left有点奇怪,它更像是索引的名称,但事实就是如此。

&array[element]array + element是同一个表达式,表示数组array的第element元素的地址。

您调用的 function 需要此地址作为第一个参数,并将要处理的元素数作为第二个参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM