为c中的指针结构成员赋值

时间:2015-04-05 10:10:50

标签: c function

我定义了一个c函数,需要为通过地址传递给函数的结构的成员赋值,例如我定义了一个名为cell的结构:

typedef struct AB
{int A;
 char val;
}cell;

我编写了一个名为Available的函数,其中一个单元格通过地址传递给函数。我需要使用用户给出的参数填充单元格内的整数成员A,这是我的方法。

void available(cell *c,int v)
{ *c.A=v;
 }

我的问题是我能够这样做吗?比如* c.A = v?

3 个答案:

答案 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;
}