[英]Passing a pointer to struct as a parameter to a function in C
當將指向struct
的指針作為參數傳遞給函數時,在printf
中使用該括號(*t).name
的意義是什么。
我對(*t).name
, *(t).name
和t.name
之間的區別感到困惑。
typdef struct{
const char *name;
}phone;
void update(phone *t){
printf("Name %s!,(*t).name);
}
該函數不將struct
作為參數,而是使用指向結構的指針 。 為了使用指針,您必須取消引用它,而*ptr
用於取消引用指針以訪問其指向的對象。
(*t).name
等效於:
t->name
這是更常見的編寫方式。
t.name
不能使用,因為t
不是結構,而是指針,和.
只能與結構一起使用。
*(t).name
是錯誤的,因為.
具有比*
更高的優先級,因此它等效於:
*(t.name)
我建議您回到教科書或教程中,並重新閱讀有關指針的章節。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.