|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- void check(char *x,char *y,int (*comp)(char *,char *))
- /*第三个参数为函数指针变量*/
- {
- if(!(*comp)(x,y))
- printf("相等\n");
- else
- printf("不相等\n");
- }
- int compvalues(char *x,char *y)
- {
- if(atoi(x)==atoi(y))
- /*atoi()将字符串类型转换成整型,需要包含头文件stdlib.h*/
- return 0;
- else
- return 1;
- }
- void main()
- {
- char a[80],b[80];
- strcpy(a,"0123");
- strcpy(b,"123");
- printf("比较数值是否相等:\n%s与%s",a,b);
- check(a,b,compvalues);
- printf("比较字符串中是否相等:\n%s与%s",a,b);
- check(a,b,strcmp);
- }
复制代码
//编写一个函数,使用函数指针变量作为参数,使其即可比较字符串是否相等,也可比较数值是否相等。
//大佬们啊,看不懂啊!!!
比如说他check(a,b,compvalues);
ckeck里面的第三个变量传入的是函数名,其实就是compvalues函数的入口地址
然后在check函数第三个形参int (*comp)就指向这个入口地址,然后就可以使用(*comp)(x,y),
(*comp)(x,y)就和compvalues(x,y)一样的,他们都是一个代码块上的函数
|
|