当前位置:网站首页 > 技术博客 > 正文

c语言中结构体数组



如果想把一个数组名参数传递给函数,正确的函数形参应该是怎样的?它是应该声明为一个指针还是一个数组?

调用函数时实际传递的是一个指针,所以函数的形参实际上是一个指针,但为了使程序员新手更容易上手一些,编译器也接受数组形式的函数形参。因此,下面这两个函数原型是相等的:

 
  

举例结构体:

 
  

结构体作为函数参数

 
  

结构体指针作为函数参数

 
  

我们知道数组作为函数参数的使用方法,那结构体数组本质上也是数组,所以结构体数组作为函数参数的使用方法应该与数组作为函数参数的方法一样。同时我们也知道,下标引用与间接访问完全相同 。下图中函数访问结构体数组是使用下标引用的方式。
在这里插入图片描述
下图是传参另一种方式,同样也是使用下标引用方式:
在这里插入图片描述


即然下标引用与间接访问相同,那间接访问应该如何实现?见下图:
在这里插入图片描述

上图中第 18 行也可以这样写,(* ( cmd+i ) ).name。由于 " * "取值运算符优先级小于 " . "成员选择运算符,所以需要将 *cmd 用括号括起来。

另外,void print_info() 函数的第一个参数也可以这样写 ” str_cmd cmd[] “。就是和数组是一样的。变来变去,取自己喜欢的一种即可。

还有一种写法,如下图:
在这里插入图片描述
这种写法实际处理函数只针对某一个结构体(传进来的那个结构体)操作。

针对不同的应用场景,选择传递合适的参数。

版权声明


相关文章:

  • 数据库的规范2025-09-22 15:30:05
  • scrum敏捷项目管理2025-09-22 15:30:05
  • 窄带物联网中窄带是什么意思2025-09-22 15:30:05
  • 开窗函数oracle2025-09-22 15:30:05
  • 网络攻防步骤2025-09-22 15:30:05
  • java获取鼠标当前坐标2025-09-22 15:30:05
  • stream.of()2025-09-22 15:30:05
  • cisco nat回流及解决方法2025-09-22 15:30:05
  • linux怎么添加组2025-09-22 15:30:05
  • windows软件管家2025-09-22 15:30:05