亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

int (*pquadrate)(int a) = &quadrate;是啥意思?

不太明白(*pquadrate)后面為啥還有個(int a) ??

正在回答

5 回答

這是函數指針聲明。

這是將pquadrate聲明為函數指針,它指向的是有一個int型參數,返回值為int的函數。這語句同時將pquadrate初始化為quadrate的地址(顯然quadrate應該是個函數名)。


一步一步講這個聲明:

  • 這語句聲明的是pquadrate變量,前面有個*,而且是用小括號和變量名括起來的(*pquadrate),表明這個變量名優先和*結合。聲明變量時前面有*就代表這個變量是指針,所以pquadrate是個指針。那它指向什么呢?

  • 接著看,后面有小括號,前面有類型,表明是個函數。參數就是int a,返回值是int型。所以pquadrate是指向這樣的函數的指針。

7 回復 有任何疑惑可以回復我~
#1

帥踢鍋 提問者

請問,后面的參數int a應該不需要與quadrate函數聲明中的一致吧?另外,可以否省略寫成(*pquadrate)(int),這樣做規范嗎?
2015-07-30 回復 有任何疑惑可以回復我~
#2

onemoo 回復 帥踢鍋 提問者

完全可以不寫a。 函數聲明中的參數列表只需要寫出各個參數的類型,寫不寫參數名無所謂(其實編譯器也不理會你寫的名字)。
2015-07-31 回復 有任何疑惑可以回復我~
#3

帥踢鍋 提問者

回答非常詳細!感謝onemoo同學
2015-07-31 回復 有任何疑惑可以回復我~

厲害了,大神呀

0 回復 有任何疑惑可以回復我~

厲害 。。。


0 回復 有任何疑惑可以回復我~

原來如此

0 回復 有任何疑惑可以回復我~

謝謝你的解釋!

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

int (*pquadrate)(int a) = &quadrate;是啥意思?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號