怎么向结构体中传入参数
时间: 2023-03-28 12:01:45 浏览: 45
可以通过结构体的构造函数来向结构体中传入参数。构造函数是一个特殊的函数,用于创建结构体对象时初始化结构体成员变量。在构造函数中,可以接收参数并将其赋值给结构体成员变量。例如:
```
struct Person {
char name[20];
int age;
float height;
Person(char n[], int a, float h) {
strcpy(name, n);
age = a;
height = h;
}
};
int main() {
Person p("Tom", 20, 1.75);
return ;
}
```
在上面的例子中,定义了一个名为 Person 的结构体,包含了三个成员变量:name、age 和 height。在结构体中定义了一个构造函数,接收三个参数,分别为名字、年龄和身高,并将这些参数赋值给结构体成员变量。在 main 函数中,创建了一个名为 p 的 Person 对象,并向构造函数传入了三个参数,用于初始化 p 的成员变量。
相关问题
结构体数组传入函数
在C语言中,结构体数组可以通过指针传递给函数,以便函数对结构体数组进行操作。以下是一个示例:
```c
#include <stdio.h>
struct student {
char name[20];
int score;
};
void printStudents(struct student *stu, int size) {
for (int i = 0; i < size; i++) {
printf("Name: %s\n", stu[i].name);
printf("Score: %d\n", stu[i].score);
}
}
int main() {
struct student stu[3] = {
{"Tom", 80},
{"Jerry", 90},
{"Mike", 85}
};
printStudents(stu, 3);
return 0;
}
```
在这个示例中,我们定义了一个`student`结构体和一个`printStudents`函数,该函数接受一个指向`student`结构体的指针和一个表示结构体数组大小的整数。在`main`函数中,我们定义了一个包含3个`student`结构体的数组,并将其传递给`printStudents`函数。`printStudents`函数使用指针访问结构体数组中的每个元素,并打印出学生的姓名和分数。
需要注意的是,在函数中使用指针访问结构体数组时,可以使用`.`运算符或`->`运算符来访问结构体的成员变量。在上面的示例中,我们使用`stu[i].name`和`stu[i].score`来访问每个学生的姓名和分数。
结构体数组作为函数参数传递时,可以避免结构体数组的复制,提高程序效率。同时,对结构体数组的修改也会在函数调用后保持有效。
C语言 结构体作为参数传入并赋值作为输出参数
可以使用指针方式将结构体作为参数传入,并在函数内部对其进行赋值,达到输出参数的效果。
下面是一个例子:
```
#include <stdio.h>
// 定义一个结构体
struct Person {
char name[20];
int age;
};
// 声明一个函数,参数为结构体指针
void set_person(struct Person *p) {
strcpy(p->name, "Tom");
p->age = 20;
}
int main() {
struct Person p;
// 调用函数并将结构体指针作为参数传入
set_person(&p);
// 输出结构体内容
printf("name: %s\n", p.name);
printf("age: %d\n", p.age);
return 0;
}
```
在上面的代码中,我们定义了一个 `Person` 结构体,并在 `set_person` 函数中对其进行赋值。在 `main` 函数中,我们声明了一个 `Person` 类型的变量 `p`,并将其地址作为参数传递给 `set_person` 函数。在函数内部,我们使用 `->` 运算符访问结构体成员,并对其进行赋值。最后,在 `main` 函数中输出结构体中的内容。
输出结果为:
```
name: Tom
age: 20
```