[英]Typedef struct, pointers and passing pointers to a function
我對編程有點陌生,所以如果有人可以在這里幫助我,我將不勝感激!
typedef struct /*struct for circle creation*/
{
int x_coord;
int y_coord;
int radius;
} circle, *circlepointer;
我需要一個指向圓的指針,然后將該指針傳遞給 function,如果圓半徑大於 0,則返回 true,否則返回 false。 我如何將我的 *circlepointer 傳遞給 function 並檢查這個? 我應該能夠在 function 中執行類似 circle.radius > 0 的操作
希望你能幫忙
function 可以這樣聲明
int f( circlepointer c );
或者
int f( const circle *c );
並稱為
circle c = { /*...*/ };
f( &c );
在 function 中,您可以訪問 object 的數據成員,例如c->radius
或( *c ).radius
。
除了返回類型 int,您還可以使用 C 類型 _Bool。 或者您可以包含 header <stdbool.h>
並將返回類型寫為bool
。
注意這兩個 function 聲明
int f( const circlepointer c );
和
int f( const circle *c );
不等價。 在第一個聲明中,指針本身是常量。 在第二個聲明中,指針指向的 object 是常量。
您可以通過這種方式聲明和定義您的 function
int func(circle * c) {
return c->radius > 0;
}
通過指針訪問成員可以使用 -> 運算符或通過取消引用指針然后使用來完成。 操作員訪問其成員
(*c).radius
c->radius
然后在 main 中調用它
circle c = {your_x, your_y, your_radius};
func(&c);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.