欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

使用指针编写 C 函数的实现

最编程 2024-07-05 17:34:03
...

c语言编写一个函数用指针方法实现功能

C语言编写一个函数用指针方法实现功能

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

{

int i,j;

int s_len=strlen(source);

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.\n");

for (i = 1; i {

nIterator+=1/i;

}

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

}

// 输入为偶数

void FuncEven(int n)

{

float i, nIterator = 0;

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

for (i = 2; i {

nIterator+=1/i;

}

printf("And the result is: %f\n",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语言函数的实现的详细内容,更多请关注php中文网其它相关文章!