我定义了一个c函数,需要为通过地址传递给函数的结构的成员赋值,例如我定义了一个名为cell的结构:
typedef struct AB
{int A;
char val;
}cell;
我编写了一个名为Available的函数,其中一个单元格通过地址传递给函数。我需要使用用户给出的参数填充单元格内的整数成员A,这是我的方法。
void available(cell *c,int v)
{ *c.A=v;
}
我的问题是我能够这样做吗?比如* c.A = v?
答案 0 :(得分:1)
通常你会使用箭头操作符:
c->A = v;
但你也可以这样做:
(*c).A = v;
请注意,在这种情况下,您需要使用括号来处理运算符优先级。
答案 1 :(得分:1)
使用
(*c).A=v;
或
c->A=v;
而不是
*c.A=v;
答案 2 :(得分:1)
有效作业看起来像
void available( cell *c, int v )
{
( *c ).A = v;
}
或喜欢
void available( cell *c, int v )
{
c->A = v;
}