跳至內容

用指針方式編寫C語言函數的實現

更新時間
快连VPN:速度和安全性最佳的VPN服务
快连VPN:速度和安全性最佳的VPN服务

C語言編寫一個函數用指針方法實現功能

int find(char* source/*源串*/, char* target/*子串*/)//找到返回在源串中的位置,未找到返回-1,如果要改爲找到返回1,把return i改爲return 1;

{

int i,j;

int s_len=strlen(source);

立即學習“C語言免費學習筆記(深入)”;

int t_len=strlen(target);

if(t_len>s_len)

{

return -1;

}

for(i=0;i

{

j=0;

int flag=1;

if(source[i]==target[j])

{

int k,p=i;

for(k=0;k {

if(source[p]==target[j])

{

p++;

j++;

continue;

}

else

{

flag=0;

break;

}

}

}

else

{

continue;

}

if(flag==1)

{

return i;

}

}

return -1;

}

利用指向函數的指針編程

函數指針有時候是很有用的,比如在結構體中定義函數指針就可以在C語言中實現類似C++的類成員函數的特性.

下面的程序定義了一個函數指針數組,根據輸入數字的餘數(1或0),不用if else就能調用相應的函數了.

// 輸入爲奇數

void FuncOdd(int n)

{

float i, nIterator = 0;

printf("You entered an odd number.");

for (i = 1; i {

nIterator+=1/i;

}

printf("And the result is: %f",nIterator);

}

// 輸入爲偶數

void FuncEven(int n)

{

float i, nIterator = 0;

printf("You entered an even number;");

for (i = 2; i {

nIterator+=1/i;

}

printf("And the result is: %f",nIterator);

}

int main()

{

int nInput = 0; // 存放輸入的數字

void (*func[2])(int); // 定義函數指針,指向兩個不同的函數

func[0] = FuncEven;

func[1] = FuncOdd;

printf("Please input a number:"); // 從控制檯獲取輸入

scanf("%d",&nInput);

(*func[nInput%2])(nInput); // 根據輸入數字調用相應函數

return 0;

}

c語言指針用法

int top 應不屬於指針的範疇了,而是int的常用變量的定義,這個top要看是怎麼用法,如果按照負數,0,正數來使用的話,可以判斷它是用來做爲這個類的一個特殊的定義標識; 如果這個變量是一個循環裏面的的計數器的話(意思就是隨着循環的次數增多或者減少)就可以判斷這個循環成功的執行的多少次了

Reader是一個類名,意思類也是一種數據類型

就像整型int一樣是一個數據類型名稱

Reader read[Maxr];意思是定義了一個這樣類的數組變量,Marxr 估計就是一個宏定義好的一個數值

爲什麼可以這樣定義呢,應爲class可以包含任意的數據類型(和c裏面的struct一樣),也包括外部class

以上就是用指針方式編寫C語言函數的實現的詳細內容,更多請關注本站其它相關文章!

更新時間

發表留言

請注意,留言須先通過審核才能發佈。