函式的返回值可以是指向結構體的指標麼

時間 2021-08-30 09:50:35

1樓:天蠍神經俠侶

nt(*changevar)(int);//你少些了個e 這是乙個函式指標,這個changevar指標指向乙個這樣的函式:這個函式有乙個int型引數,返回值也是int.所以if(fb_info.

changevar) 的意思就是判斷結構體fb_info中的changevar是否為空,等同於if(fb_info.changevar==null) . 而(*fb_info.

changevar)(con)就是用changevar呼叫乙個con函式了,con函式也是乙個只有乙個int引數,返回值是int的函式,此時 結構體fb_info的函式指標changevar指向con這個函式。就和普通的變數指標指向乙個變數的意思一樣的。

2樓:雪琳戀庚

例子://首先定義結構體

struct lwip_socket ;

//定義乙個此結構體變數,注意宣告為staticstatic struct lwip_socket sockets[num_sockets];

//然後就可以用使用了

static struct lwip_socket *get_socket(int s)

sock = &sockets[s];

if (!sock->conn)

return sock;}

3樓:段茂典

前乙個是個函式指標,如果有個函式是這樣定義的int pfunction( )

那就可以用指標指向這個函式

然後呼叫時就可以這樣用p();後乙個是指標函式,他的返回值是乙個指向整型變數的指標

4樓:靜聽這寂寞

當然可以啊,指標就是用來存放位址的,32位機器大小定死是4個位元組,不過和多少位機器有關

你返回結構體型別指標那就說明這個4位元組存放位址的p空間存放的位址是結構體型別的,也就是struct carport_information. ,別把結構體想象很特別,它也就是一種變數型別,該怎麼定義和使用就和普通的變數一樣。

你的程式可能是一段,沒太看懂

不過迴圈不斷的return肯定有問題啊,return是乙個出口,就代表此函式結束了,那麼你迴圈一成立就立即結束了,我猜想你可能不是想那麼用,如果你想儲存所有的為true的物件,那麼可以用指標陣列來儲存,或者用鍊表來儲存,最後返回

手機手打,有什麼不懂可以繼續問

c語言中函式返回值可以是陣列 字串和結構體嗎?

1 ansi c語言標準,明確規定 陣列型別和函式型別不可以做為返回值。解決這種返回值的方法是通過指標來間接返回,即使用陣列指標和函式指標。這可以做為c語言引入指標的另乙個理由。2 字串是陣列的一種,是字元陣列,所以同樣不可以作為返回值。3 結構體型別可以做為返回值,c語言設計者當時引入struct...

返回值和函式值的問題,C 函式返回值問題

函式值跟返回值本來就是一回事。乙個函式只能返回乙個值,這個值是通過renturn 語句返回給main 函式的。函式前面的int就是定義的返回值型別。也就是這個被調函式工作完了,要給main函式乙個值,這個值的型別是int,如果你的int換成是float,char 以及其他任意資料型別,那麼retur...

linux下 socket函式的返回值代表什麼

小雨手機使用者 int socket domain指明所使用的協議族,通常為pf inet,表示網際網路協議族 type引數指定socket的型別 sock stream 或sock dgram,socket介面還定義了原始socket,允許程式使用低層協議 protocol通常賦值 0 socke...