如果我有这样的结构:
struct Point
{
double x;
double y;
};
和这样的函数
double geometricDistance(struct Point point1, struct Point point2)
{
double xDist = point1.x - point2.x;
double yDist = point1.y - point2.y;
return sqrt((xDist * xDist) + (yDist * yDist));
}
当我打电话geometricDistance
时,我不能只做 geometricDistance(5,6);
或类似的东西,因为那只是两个整数。我该如何调用它?
谢谢。
哦,顺便说一句,它是用 C 语言编写的。
明白了 - 使用大括号。谢谢。
最佳答案
所以你有了你的结构。
在 main 中你可以声明一个点。
struct Point point1;
struct Point point2;
现在您创建了一个名为 point 的结构变量,它可以访问结构中的 double x 和 double y 值。
point1.x = 12;
point1.y = 15;
point2.x = 5;
point2.y = 6;
要将其传递到函数中,您需要传递一个指向该结构的指针,这使您可以编辑该点的值。
//函数调用
double value = geometricDistance(&point1, &point2);
double geometricDistance(struct Point* point1, struct Point* point2)
{
double xDist = point1->x - point2->x;
double yDist = point1->y - point2->y;
return sqrt((xDist * xDist) + (yDist * yDist));
}
编辑:我意识到您实际上不需要将指针传递给结构。您可以简单地将函数参数设置为 double geometricDistance(struct Point point1, struct Point point2)
因为您没有更改您声明的任何结构变量的值。
您的函数调用可以简单地是 double value = geometricDistance(point1, point2);
在函数内部而不是使用 ->
引用你可以使用.
像这样的引用point1.x
或point1.y
关于c - 如何调用以结构体作为参数的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36816594/