Q
無法理解指針語句
2
A
回答
3
fp
是一個指針
(*fp)
到功能
(*fp)(
接受型char
(*fp)(char)
1個參數,並返回類型的值int
int (*fp)(char)
在大部分冗餘轉換之後,指針初始化的地址爲puts
。
int (*fp)(char *)=(int(*)(char *))&puts
int (*fp)(char *)=(int(*)(char *))puts // & redundant
int (*fp)(const char *)=puts
對象i
未初始化。它具有類型int
int (*fp)(char *)=(int(*)(char *))&puts, i;
0
首先出現的是一個變量聲明:
int (*fp)(char *)
fp
是指向功能,它採取了char *
參數和返回int
。
然後fp
被初始化爲一個值:
(int(*)(char *))&puts
的值是puts
函數的地址,轉換爲相同的類型fp
。
最後,還有另外一個變量聲明:
int /* ... */, i;
0
有兩個部分本聲明:
int (*fp)(char *)=(int(*)(char *))&puts, i;
第一爲:int (*fp)(char *)=(int(*)(char *))&puts;
解釋:這是函數指針聲明並在單個語句中初始化。其中fp
是指向函數puts
的指針。如果您打印的值爲fp
和puts
,它們將具有相同的值,即地址puts
。
#include<stdio.h>
int main()
{
int (*fp)(char *)=(int(*)(char *))&puts, i;
printf("puts %p\n",puts);
printf("fp %p\n",fp);
}
和第二是:int i;
相關問題
- 1. 無法理解c中的空指針
- 2. 無法理解一個case語句
- 3. 無法理解觸發語句
- 4. C++ delete語句爲指針的指針
- 5. 理解指針
- 6. 理解指針
- 7. 如何理解指向具有語法的數組的指針
- 8. C語言中的語法理解指針
- 9. 指針(地址),if語句
- 10. 固定的指針語句?
- 11. 理解指針/ C++
- 12. 理解指針(指值)
- 13. 無法理解UriMatcher語法
- 14. 無法理解JavaScript語法
- 15. 無法理解jsp語法
- 16. 無法理解React語法
- 17. Java.awt.EventQueue.invokeLater():無法理解語法
- 18. 不理解錯誤消息:for語句中的語法無效
- 19. NSLog指針語法
- 20. C指針語法
- 21. 理解IF語句
- 22. 指針指針的語法是什麼?
- 23. 無法解釋爲什麼指針成爲創建的指針
- 24. 不是指針,無法解引用
- 25. 無法解釋的空指針錯誤
- 26. phpstorm - @import「指南針」無法解析
- 27. 語句無法解析超載函數的地址C++指標
- 28. 我無法理解C++中字符指針操作的索引
- 29. 無法理解彙編代碼中的基址指針計算
- 30. 無法理解命令行參數指針
使用連結:[FP作爲函數指針(指針到char)返回int(https://cdecl.org/?q=int++%28* FP%29%28char + *%29) – chux