
#include <stdioh>
#include <conioh>
#define ARR_LEN 50 /数组长度上限/
/ 比较字符串长度 /
int myStrcmp (char des[], char src[]) {
int i=0, j=0, k=0;
int desLen=0, srcLen=0;
/求对比数组长度/
while (des[i++])
desLen++;
while (src[j++])
srcLen++;
return (desLen-srcLen);
}
int main (void) {
char str1[ARR_LEN];
char str2[ARR_LEN];
gets (str1);
gets (str2);
printf ("%d\n", myStrcmp (str2,str1));
getch (); /屏幕暂留/
return 0;
}
一般指针函数形为datatype fuctionname(),其中datatype为数据类型如int,
结尾一般是return &(something):返回一个地址
函数指针告诉CPU下一步需要执行哪里的代码的指针, 一数组十分相像
#include <stdioh>void function(int i, double d) //一个函数的声明
{
printf("函数运行, %d, %lf\n", i, d);
}
void AnotherFunction(int i, double d) //另外一个函数声明
{
printf("又一个函数运行, %d, %lf\n", i, d);
}
int main()
{
void (pFun)(int, double); //定义了一个函数指针
int (p)(int , double); //用于调试的函数指针
pFun = function; //让这个函数指针指向第一个函数
pFun(10, 10101); //通过这个函数指针来调用第一个函数
pFun = AnotherFunction; //让这个函数指针指向第二个函数
pFun(20, 20202); //通过这个函数指针来调用第二个函数
//若将以下代码取消注释, 就会产生错误
/
p = function;
p = AnotherFunction;
//原因很简单, 因为p是必须指向一个返回值为int, 第一个参数为int, 第二个参数为double的函数, 但是在此代码中定义的函数返回值是void
/
//这个实验中, 直接用函数名来赋值了, 是因为函数名其实就是这个函数的指针
//而在平常调用函数时, 都要加上(), 如:printf("");
//这里, "()"就相当于''(就是取值运算符), printf是函数指针, 就相当于是数组名, 即数组的首地址
return 0;
}
以上就是关于C语言,函数指针程序设计,帮忙编写几道题全部的内容,包括:C语言,函数指针程序设计,帮忙编写几道题、指针函数程序结尾咋写、c语言的函数指针举个例子等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)