[][C]关于向被调用函数传递结构数组的有关问题

[求助][C]关于向被调用函数传递结构数组的问题
我在网上看到有人这样像被调用函数传递信息:
C/C++ code

struct a {
   ...;
 };
 
 void function(struct a []);
 int main(void)
 {
   struct a arr[5];
   function(arr);
 
   return 0;
 }
 
 void function(struct a arr[5])
 {
   ...;
 }


我自己看书的时候,依稀记得当使用
C/C++ code

void function(struct a arr[5])


这样的函数定义的时候,编译的时候,会忽略掉中括号中间的5,相当于形式参数是一个指针,调用函数向被调用函数传递的是数组的地址,但是我不太确定,自己翻书没找着..要想传递结构的值的话,我是这样写的,大家看看我写的对不对,非常感谢!
C/C++ code

struct a {
   ...;
 };
 
 void function(struct a strc);
 int main(void)
 {
   struct a arr[5];
   for (int i = 0; i < 5; i++)
     function(arr[i]);
 
   return 0;
 }
 
 void function(struct a strc)
 {
   ...;
 }


  struct a {
  ...;
  };
   
  void function(struct a strc);
  int main(void)
  {
  struct a arr[5];
  for (int i = 0; i < 5; i++)
  function(arr[i]);
   
  return 0;
  }
   
  void function(struct a strc)
  {
  ...;
  }

我是C的初学者,目前正在努力重新学习计算机,非常感谢!

------解决方案--------------------
5F,没有struct可以?a又不是typedef了的,根本不是类型

忽略[]中数字的在C Primer Plus P257说的