博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
函数指针 指针函数
阅读量:5300 次
发布时间:2019-06-14

本文共 1107 字,大约阅读时间需要 3 分钟。

趁热打铁,彻底搞一下,指针函数和函数指针;中国语言博大精深,后边是本质:

函数指针-》 是指针  

指针函数-》是函数   

int fun(int ,int) ->整形函数

int * fun(....)   ->整形指针函数

比如函数库中的strcpy(包括'\0'都要拷贝) 

char * mystrcpy(char *to, const char *from)

{

  //if(to!=NUll&&from!=NULL) 需要判空

       char *save = to;    //保存起始地址

      // for (; (*to = *from) != '/0'; ++from, ++to);写法一

      /* while(*from !='\0')写法2

    {

      *to = * from;

      to++;

      src++

     }

  */

 // while((*to++ = *from++)!='\0')//写法3

  return(save);

}

 

误区 千万不要返回局部变量的地址;

int* fun()    

{

  int i = 10;

  return &i;

} //无意义

 

 int main()

{

  char [] s1 = "hello";

  char [] s2 ;

  char * p = mystrcpy(s2,s1);

  puts(p);//hello

}

 

 

函数指针demo:

void check(char *a,char *b,int(*cmp)(constchar*,constchar*));

void main()

{

    char s1[80],s2[80];

    int(*p)(constchar*,constchar*);

    p = strcmp;                         //比较俩个串是否相等

    printf("请输入");

    gets(s1);

    gets(s2);

    check(s1, s2,p);

}

 

void check(char* a,char* b,int(*cmp)(constchar*,constchar*))   // 如果此时cmp指向的不是strcmp,而是strcpy这个时候check就拥有了拷贝字符串的功能了,这个有点像C++ 多态 ,挺奇妙的。

{

    printf("");

    if (!(*cmp)(a,b))

        printf("相等");

    else

        printf("不相等");

}

转载于:https://www.cnblogs.com/ziqiongbuxi/p/3446896.html

你可能感兴趣的文章
Linux查看文件编码格式及文件编码转换<转>
查看>>
Leetcode: Find Leaves of Binary Tree
查看>>
Vue 模板解释
查看>>
http://www.bootcss.com/
查看>>
20145308 《网络对抗》 注入shellcode+Return-to-libc攻击 学习总结
查看>>
将多张图片和文字合成一张图片
查看>>
自己动手写ORM(01):解析表达式树生成Sql碎片
查看>>
如何使用USBWebserver在本机快速建立网站测试环境
查看>>
百度Ueditor编辑器的Html模式自动替换样式的解决方法
查看>>
变量提升
查看>>
线性表可用顺序表或链表存储的优缺点
查看>>
在现有的mysql主从基础上,搭建mycat实现数据的读写分离
查看>>
[Flex] flex手机项目如何限制横竖屏?只允许横屏?
查看>>
tensorflow的graph和session
查看>>
JavaScript动画打开半透明提示层
查看>>
Mybatis生成resulteMap时的注意事项
查看>>
jquery-jqzoom 插件 用例
查看>>
1007. Maximum Subsequence Sum (25)
查看>>
iframe的父子层跨域 用了百度的postMessage()方法
查看>>
图片生成缩略图
查看>>