结构体数组如何给函数传参
时间: 2024-11-18 11:12:02 浏览: 35
结构体数组作为函数参数传递时,可以直接将整个数组名作为参数,或者通过指针间接传递。这里有两个常见的方式:
1. **直接传递**:
```c
typedef struct {
int num;
char str[50];
} MyStruct;
void processArray(MyStruct arr[], int size) {
for (int i = 0; i < size; i++) {
// 对arr[i].num 和 arr[i].str 进行操作
}
}
int main() {
MyStruct myArray[3] = { {1, "one"}, {2, "two"}, {3, "three"} };
processArray(myArray, sizeof(myArray) / sizeof(myArray[0]));
return 0;
}
```
2. **通过指针传递**:
```c
void processArray(MyStruct* arr, int size) {
for (int i = 0; i < size; i++) {
// 对(*arr)[i].num 和 (*arr)[i].str 进行操作
}
}
int main() {
MyStruct myArray[] = { {1, "one"}, {2, "two"}, {3, "three"} };
processArray(myArray, sizeof(myArray) / sizeof(myArray[0]));
return 0;
}
```
在这种情况下,函数接受的是指向结构体数组首元素的指针,通过解引用操作 `(*arr)` 来访问数组的各个元素。
阅读全文