簡單英語中的函數指針是什麼?什麼是函數指針?
Q
什麼是函數指針?
-2
A
回答
1
簡單英語,
甲FUNCTION_POINTER是指向朝向 機能的研究的第一指令的地址,如指向朝向一個變量的 地址的指針的指針。
以一個程序的例子來理解高達用戶I/P所有整數的概念
總和
-
#include <stdio.h>
int IsAny(long n)
{
return 1;
}
long AddIf(long limit, int (*funPointer)(long))
{
long sum = 0;
register int i;
for(i = 1; i <= limit; ++i)
{
if(funPointer(i))
sum += i;
}
return sum;
}
int main(void)
{
long l, total;
printf("Enter a positive integer: ");
scanf("%ld", &l);
total = AddIf(l, IsAny);
printf("Sum of all integers upto %ld is %ld\n", l, total);
}
這裏FUNCTION_POINTER被稱爲撥打IsAny
函數AddIf
並聲明 作爲int (*funPointer)(long))
在AddIf
函數
1
正如你問的簡單英語,讓我們試試看吧。
指針是內存中的地址。指針有一個類型,因此程序可以在使用指針時「查找」引用的對象。
函數指針使用相同的邏輯。它聲明瞭一個將被使用的函數,它有一個例子的方法參數。所以你知道你將使用一個函數,該函數在該方法中將有一個輸入和一個輸出,但是該函數中的邏輯不需要知道。
從那裏你可以發送任何函數指針作爲程序使用,只關心你將發送和接收預定義的類型。
1
根據維基
的函數指針(或子程序pointer或過程指針)是由third-generationprogramming languages支持的類型的指針(如PL/I,COBOL,Fortran,1的dBASE DBL,和C)和object-oriented programming languages(例如如C++和D)。 2函數指針指向內存中的可執行代碼,而不是引用數據值。當dereferenced時,函數指針可以用來調用function它指向並傳遞它的參數,就像正常的函數調用一樣。這種調用也稱爲「間接」調用,因爲該函數是通過變量間接調用的,而不是直接通過固定的名稱或地址調用。函數指針可以用來簡化代碼,方法是提供一種簡單的方法來根據運行時間值選擇要執行的函數。
0
指針=保存變量的地址或意味着簡單的內存。 與指針一樣,函數指針保存一個函數的地址。
語法: 返回類型(* fp)(argument);
例子:
void f1()
{
printf("in function f1");
}
int main()
{
/* declaring a function pointer
* argument void
* return type is also void
*/
void (*fun_ptr) (void);
fun_pt= f1(); // fun_pthold the address of f1
(*fun_pt)(); // calling a function f1
}
相關問題
- 1. vbscript中的函數指針是什麼?
- 2. 什麼是函數指針的使用?
- 3. 什麼是指向指針的指針?
- 4. 什麼是打印內建函數的函數指針
- 5. 什麼是指向一個函數的指針?
- 6. 什麼是強指針和弱指針
- 7. 指針指針的意義是什麼?
- 8. 指針指針是什麼意思?
- 9. 指針指針的語法是什麼?
- 10. 這有什麼函數指針
- 11. 函數指針聲明 - __P做什麼?
- 12. OpenGL gl *指針函數做什麼
- 13. 函數指針的指針值代表什麼?
- 14. 如果它不是函數指針,它是什麼?
- 15. 在函數中使用指針指針的正確方法是什麼?
- 16. 傳遞指針作爲函數參數的語義是什麼?
- 17. 函數指針數組的類型是什麼?
- 18. 什麼是懸掛指針
- 19. 什麼是裸指針?
- 20. 什麼是指針聲明?
- 21. 什麼是指針攪拌?
- 22. 什麼是參考指針?
- 23. 什麼是合成指針?
- 24. c函數指針反函數指針
- 25. 指針?指針函數?
- 26. 函數指針不是INT
- 27. 什麼是clang equivaivalent這個聲明的函數指針__stdcall?
- 28. CyclicBarrier.await()函數產生空指針異常的原因是什麼
- 29. 有一個函數指針類型是什麼意思?
- 30. C中的空函數指針是什麼意思?
如果我不清楚不要猶豫,我將盡我所能,在純英文清楚你問。一個艱難的練習,但有趣:) – AMS