定义了一个名为Rectangle的结构体,通过NewRectangle函数创建一个新的矩形实例。并且提供了两个方法Area()和Perimeter()来计算矩形的面积和周长。要求使用结构体指针来提高代码的效率和可读性。
时间: 2024-12-13 22:28:58 浏览: 5
设计一个矩形类Rectangle(Java)
在C语言中,你可以定义一个名为Rectangle的结构体,它包含两个成员变量,如宽度(width)和高度(height)。然后,你可以创建一个函数NewRectangle,用于动态分配内存并初始化这个矩形结构体。结构体指针在这种场景下非常有用,因为它可以直接操作结构体实例,并提供更好的可读性和效率。
```c
// 定义Rectangle结构体
typedef struct {
int width;
int height;
} Rectangle;
// 函数声明,使用结构体指针返回新的矩形实例
Rectangle* NewRectangle(int width, int height);
// 矩形结构体的方法
void Area(Rectangle* rect) {
*rect->area = rect->width * rect->height;
}
void Perimeter(Rectangle* rect) {
*rect->perimeter = 2 * (rect->width + rect->height);
}
// 使用结构体指针创建并初始化矩形
Rectangle* CreateRect(int w, int h) {
Rectangle* newRect = malloc(sizeof(Rectangle));
if (newRect != NULL) {
newRect->width = w;
newRect->height = h;
newRect->area = &newRect->area; // 对应于Rectangle结构中的一个int变量area
newRect->perimeter = &newRect->perimeter; // 对应于Rectangle结构中的一个int变量perimeter
}
return newRect;
}
// 示例
Rectangle* rect = CreateRect(5, 7);
Area(rect); // 计算并存储面积到rect->area
Perimeter(rect); // 计算并存储周长到rect->perimeter
阅读全文