将指向struct
的指针作为参数传递给函数时,在(*t).name
中使用该括号printf
是什么意思。
我对(*t).name
,*(t).name
和t.name
之间的区别感到困惑。
typdef struct{
const char *name;
}phone;
void update(phone *t){
printf("Name %s!,(*t).name);
}
答案 0 :(得分:6)
该函数不将struct
作为参数,它将指针作为结构。为了使用指针,您必须取消引用它,*ptr
用于取消引用指针以访问它指向的对象。
(*t).name
相当于:
t->name
这是更常见的写作方式。
t.name
无法使用,因为t
不是结构,它是指针,.
只能与结构一起使用。
*(t).name
错误,因为.
的优先级高于*
,所以它相当于:
*(t.name)
我建议你回到教科书或教程,重读指针章节。