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語言函數的實現的詳細內容,更多請關注本站其它相關文章!