C语言函数能返回结构体吗
时间: 2023-06-23 07:51:28 浏览: 117
是的,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` 类型的结构体指针。我们可以通过结构体变量的成员访问运算符 `.(点号)` 或结构体指针的成员访问运算符 `->(箭头)` 来访问结构体的成员。
阅读全文