標籤:span c/c++ 距離 iostream 基礎 src pmf include 指標
==================================聲明==================================
本文著作權歸作者所有。
本文原創,轉載必須在本文中顯要地註明作者和出處,並保證文章(包括本聲明)的完整性。
未經作者授權請勿修改(包括本聲明),保留法律追究的權利。
未經作者授權請勿用於學術性引用。
未經作者授權請勿用於商業出版、商業印刷、商業引用以及其他商業用途。
=======================================================================
一直以來覺得函數指標和函數指標數組沒什麼,直到後來我才知道這些東西的
正確用法,那就是讓!你!看!不!懂!
=======================================================================
下面是我的樣本小代碼。
先祭上typedef版本的。
=======================================================================
函數指標
(用函數指標作為類型定義並初始化數組)
#include <iostream>using namespace std;int MyFunc1(int p,int q){return p%q;}int MyFunc2(int p,int q){return p/q;}int MyFunc3(int p,int q){return p-q;}typedef int (*PMF)(int,int);int main(){ PMF ArrPMF[3]={MyFunc1,MyFunc2,MyFunc3}; int nRes; nRes=ArrPMF[1](7,2); cout<<nRes<<endl; nRes=1[ArrPMF](7,2); cout<<nRes<<endl; return 0;}
函數指標數組
#include <iostream>using namespace std;int MyFunc1(int p,int q){return p%q;}int MyFunc2(int p,int q){return p/q;}int MyFunc3(int p,int q){return p-q;}typedef int (*PMF[])(int,int);int main(){ PMF ArrPMF={MyFunc1,MyFunc2,MyFunc3}; int nRes; nRes=ArrPMF[1](7,2); cout<<nRes<<endl; nRes=1[ArrPMF](7,2); cout<<nRes<<endl; return 0;}
從知道C++這個東西到現在勉強能寫兩行代碼,雖然這些年來我看過一些很玄幻的作品,但是猛然間看到
1[ArrPMF](7,2);
我還是懵了好一陣子。實乃居家旅行殺人越貨必備良品。
=======================================================================
如果沒有良好的C/C++基礎以及彙編基礎外帶觸類旁通並且廣泛聯想的小腦袋瓜子,基本上可以“都放棄速度死”了。
(下面這行不是代碼)
ArrPMF[1]==>*(ArrPMF+1)<==>*(1+ArrPMF)==>1[ArrPMF]
=======================================================================
萬眾期待的技(zuò)術(sǐ)版
Enjoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooy it!
#include <iostream>using namespace std;int MyFunc1(int p,int q){return p%q;}int MyFunc2(int p,int q){return p/q;}int MyFunc3(int p,int q){return p-q;}int (*ArrPMF[])(int,int)={MyFunc1,MyFunc2,MyFunc3};//當這行距離調用點十萬八千裡的時候,啦啦啦。int main(){ int nRes; nRes=1[ArrPMF](7,2);//感受下來自大宇宙的深深惡意 cout<<nRes<<endl; return 0;}
C++基礎——函數指標 函數指標數組