使用函数中的指针从输入中获取值

问题描述 投票:1回答:1

我想从我通过使用read(&g)声明的Triangle结构的输入中获取价值但是,当我使用子功能时,我对指针感到困惑

typedef struct {
int a,b,c;
}Triangle;

void read(Triangle *pointer)
{
printf("Enter the sides of triangle:\n");
int x,y,z;
(*pointer).a = x;
(*pointer).b = y;
(*pointer).c = z;
scanf("%d%d%d",&x,&y,&z);
}


int main()
{
Triangle g;
read(&g);
printf("%d ",g.a);
printf("%d ",g.b);
printf("%d ",g.c);
}
c pointers struct typedef
1个回答
0
投票

您可以通过使用read直接读入成员变量来简化scanf函数。 (此外,“指针”并不是指针变量的好名字)。这是更简洁的版本:

void read(Triangle *pT)
{
    printf("Enter the sides of triangle:\n");
    scanf("%d%d%d", &(pT->a), &(pT->b), &(pT->c));
}

注意:对于struct变量本身,可以使用.运算符访问成员(例如g.a中的main);对于该struct变量的pointer,可以使用->运算符访问该成员(与我的代码中的pT->a一样)。由于scanf希望每个成员的地址,因此添加&运算符-方括号使您可以清楚地知道想要的地址。

© www.soinside.com 2019 - 2024. All rights reserved.