c语言get函数得到结构体的参数
时间: 2024-01-07 11:05:40 浏览: 29
在C语言中,可以通过结构体的成员名称来获取结构体的参数。例如,假设有如下定义的结构体:
```
struct person {
char name[20];
int age;
float height;
};
```
可以通过以下方式获取结构体的参数:
```
struct person p;
printf("Enter name: ");
gets(p.name);
printf("Enter age: ");
scanf("%d", &p.age);
printf("Enter height: ");
scanf("%f", &p.height);
```
在以上代码中,使用`gets()`函数获取了结构体`person`的成员`name`的值,使用`scanf()`函数获取了结构体`person`的成员`age`和`height`的值。
相关问题
C语言函数能返回结构体吗
是的,C语言函数可以返回结构体。在函数中可以声明一个结构体变量并将其作为返回值,也可以将结构体变量的指针作为返回值。下面是一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int x;
int y;
} Point;
Point get_point() {
Point p = {1, 2};
return p;
}
Point* get_point_ptr() {
Point* p = (Point*)malloc(sizeof(Point));
p->x = 3;
p->y = 4;
return p;
}
int main() {
Point p1 = get_point();
printf("(%d, %d)\n", p1.x, p1.y);
Point* p2 = get_point_ptr();
printf("(%d, %d)\n", p2->x, p2->y);
free(p2);
return 0;
}
```
在这个例子中,`get_point()` 函数返回一个 `Point` 类型的结构体,而 `get_point_ptr()` 函数返回一个 `Point` 类型的结构体指针。我们可以通过结构体变量的成员访问运算符 `.(点号)` 或结构体指针的成员访问运算符 `->(箭头)` 来访问结构体的成员。
C语言函数能返回结构体包含二维和一维数组吗
是的,C语言函数可以返回结构体,其中包含二维和一维数组。
下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int matrix[2][2];
int array[3];
} Data;
Data get_data() {
Data d = {
{
{1, 2},
{3, 4}
},
{5, 6, 7}
};
return d;
}
int main() {
Data d = get_data();
printf("Matrix:\n");
printf("%d %d\n", d.matrix[0][0], d.matrix[0][1]);
printf("%d %d\n", d.matrix[1][0], d.matrix[1][1]);
printf("Array:\n");
printf("%d %d %d\n", d.array[0], d.array[1], d.array[2]);
return 0;
}
```
在这个例子中,`Data` 结构体包含一个 2x2 的二维数组 `matrix` 和一个包含 3 个元素的一维数组 `array`。`get_data()` 函数返回一个 `Data` 类型的结构体,其中包含初始化好的二维数组和一维数组。在 `main()` 函数中,我们使用结构体变量的成员访问运算符 `.(点号)` 来访问结构体的成员,输出了结构体中保存的二维数组和一维数组。