在c语言中为指针结构成员赋值

在c语言中为指针结构成员赋值,c,function,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?通常您会使用箭头操作符: c->A

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

typedef struct AB
{int A;
 char val;
}cell;
我编写了一个名为Available的函数,其中单元格通过地址传递到函数中。我需要用用户给定的参数填充单元格中的整数成员A,下面是我的方法

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

我的问题是我能做到吗?像*c.A=v?

通常您会使用箭头操作符:

c->A = v;
但你也可以这样做:

(*c).A = v;

请注意,在这种情况下,您需要括号来处理运算符优先级。

通常您会使用箭头运算符:

c->A = v;
但你也可以这样做:

(*c).A = v;

请注意,在这种情况下,您需要括号来处理运算符优先级。

通常您会使用箭头运算符:

c->A = v;
但你也可以这样做:

(*c).A = v;

请注意,在这种情况下,您需要括号来处理运算符优先级。

通常您会使用箭头运算符:

c->A = v;
但你也可以这样做:

(*c).A = v;
注意,在这种情况下,需要使用括号来处理运算符优先级。

使用

(*c).A=v;

而不是

*c.A=v;
使用

而不是

*c.A=v;
使用

而不是

*c.A=v;
使用

而不是

*c.A=v;

有效的赋值将如下所示

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

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

有效的赋值将如下所示

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

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

有效的赋值将如下所示

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

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

有效的赋值将如下所示

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

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


c->A=v;就像classesRegarding样式一样:对
struct
typedef
使用相同的标记更加一致:
typedef struct cell{…}cell。还可以用动词命名函数,例如
set\u available
cell\u set\u available
,这样代码更容易阅读和理解。也不要使用所有大写的成员或函数名。编辑之后,不清楚可用的
函数真正做了什么…@MohamadMisto:我已经回滚了上一次编辑-如果您还有其他问题,请将其作为新问题发布。c->a=v;就像classesRegarding样式一样:对
struct
typedef
使用相同的标记更加一致:
typedef struct cell{…}cell。还可以用动词命名函数,例如
set\u available
cell\u set\u available
,这样代码更容易阅读和理解。也不要使用所有大写的成员或函数名。编辑之后,不清楚可用的
函数真正做了什么…@MohamadMisto:我已经回滚了上一次编辑-如果您还有其他问题,请将其作为新问题发布。c->a=v;就像classesRegarding样式一样:对
struct
typedef
使用相同的标记更加一致:
typedef struct cell{…}cell。还可以用动词命名函数,例如
set\u available
cell\u set\u available
,这样代码更容易阅读和理解。也不要使用所有大写的成员或函数名。编辑之后,不清楚可用的
函数真正做了什么…@MohamadMisto:我已经回滚了上一次编辑-如果您还有其他问题,请将其作为新问题发布。c->a=v;就像classesRegarding样式一样:对
struct
typedef
使用相同的标记更加一致:
typedef struct cell{…}cell。还可以用动词命名函数,例如
set\u available
cell\u set\u available
,这样代码更容易阅读和理解。也不要使用所有大写的成员或函数名。编辑之后,不清楚可用的
函数真正做了什么…@MohamadMisto:我已经回滚了上一次编辑-如果您还有其他问题,请将其作为新问题发布。
c->a=v
(*c)相同。A=v或实际上
0[c].A=v但仅用于解释目的。只使用代码中的第一个语法:
c->A=v
@MohamadMisto:如果你还有一个问题,那么就把它作为一个新问题发布——不要继续编辑超出原来范围的问题。
c->a=v
(*c)相同。A=v或实际上
0[c].A=v但仅用于解释目的。只使用代码中的第一个语法:
c->A=v
@MohamadMisto:如果你还有一个问题,那么就把它作为一个新问题发布——不要继续编辑超出原来范围的问题。
c->a=v
(*c)相同。A=v或实际上
0[c].A=v但仅用于解释目的。只使用代码中的第一个语法:
c->A=v
@MohamadMisto:如果你还有一个问题,那么就把它作为一个新问题发布——不要继续编辑超出原来范围的问题。
c->a=v
(*c)相同。A=v或实际上
0[c].A=v但仅用于解释目的。只使用代码中的第一个语法:
c->A=v
@MohamadMisto:如果你有进一步的问题,请将其作为新问题发布-不要继续编辑超出原始范围的问题。