簡體   English   中英

將指向struct的指針作為參數傳遞給C中的函數

[英]Passing a pointer to struct as a parameter to a function in C

當將指向struct的指針作為參數傳遞給函數時,在printf中使用該括號(*t).name的意義是什么。

我對(*t).name*(t).namet.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM