结构体指针修饰函数名实例
时间: 2023-11-11 13:57:39 浏览: 38
结构体指针可以作为函数参数,传递给函数进行操作和修改结构体成员。同时,我们也可以用结构体指针来修饰函数名,使得函数成为一个操作结构体指针的函数。
下面是一个使用结构体指针修饰函数名的例子:
```
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int x;
int y;
} Point;
void move(Point *p, int dx, int dy) {
p->x += dx;
p->y += dy;
}
int main() {
Point *p = (Point*)malloc(sizeof(Point));
p->x = 0;
p->y = 0;
move(p, 3, 4);
printf("New position: (%d, %d)\n", p->x, p->y);
free(p);
return 0;
}
```
在上面的代码中,我们定义了一个结构体 `Point`,它包含了两个整型成员 `x` 和 `y`。然后我们定义了一个函数 `move`,它的第一个参数是一个指向 `Point` 结构体的指针,第二个和第三个参数是移动的距离。函数内部使用箭头符号 `->` 来访问结构体指针中的成员。
在 `main` 函数中,我们先用 `malloc` 函数分配了一个 `Point` 结构体的内存,并初始化了两个成员 `x` 和 `y`。然后我们调用了 `move` 函数,并传递了 `p` 指针和移动的距离。最后输出移动后的新位置。
需要注意的是,在使用指针修饰函数名时,传递结构体指针参数时必须使用箭头符号 `->` 来访问成员,而不能使用点号 `.`。