将指向struct的指针作为参数传递给C中的函数

时间:2017-03-05 21:06:51

标签: c

将指向struct的指针作为参数传递给函数时,在(*t).name中使用该括号printf是什么意思。

我对(*t).name*(t).namet.name之间的区别感到困惑。

typdef struct{
 const char *name;
 }phone;

 void update(phone *t){
 printf("Name %s!,(*t).name);
 }

1 个答案:

答案 0 :(得分:6)

该函数不将struct作为参数,它将指针作为结构。为了使用指针,您必须取消引用它,*ptr用于取消引用指针以访问它指向的对象。

(*t).name

相当于:

t->name

这是更常见的写作方式。

t.name

无法使用,因为t不是结构,它是指针,.只能与结构一起使用。

*(t).name

错误,因为.的优先级高于*,所以它相当于:

*(t.name)

我建议你回到教科书或教程,重读指针章节。