美文网首页
5.11指向函数的指针

5.11指向函数的指针

作者: Hy_Slin | 来源:发表于2018-02-11 14:05 被阅读0次

C语言中函数不是变量,单可以定义指向函数的指针,这种类型的指针可以被赋值存放在数组中,传递给函数以及作为函数的返回值等.
前面的函数定义先不用看.
进入主函数.
首先判断参数数量,并且判断是否是-n.这里的判断很奇葩啊判断strcmp的返回值是不是0.
然后将状态变量设置为1.
然后readlines读取输入行,并将首字符的指针放到lineptr中.返回值为行数.这里的函数之前都有.
OK到了qsort函数,这个函数需要说的东西很麻烦啊,首先是声明,void,这个类型书上没有写,这个就是传说中指向指针的指针,首先需要分解一下,void是指向void类型的指针,是一个地址,访问这个地址就会取得这个地址的数据,而void是指向之前那个地址的地址.就是说void指向的是void的地址,void*又指向了一个void类型的值.转网上的一段解释能更好的理解.


void* 是说: 这是一个指针,它指向任何类型的对象.
void** 是说: 这是一个指针,它指向一个void* 型的指针.这个void *的指针又指向任何类型的对象


比如找人一样。这个人是李四
void * pdes;就好像某人的住址一样。你到他家就可以找到他了。
但是他爸说,这小子已经被我卖了,成了张三的儿子。他爸告诉你张三家的住址,然后你去张三家就可以找到李四了。
张三的地址就是
void ** ppdes;

如果张三说,已经把李四又卖了武大。

于是就又要变成
void *** pppes;


就是上面这样,因为linesptr是指针数组,其中的元素都是指针,所以想访问这些指针所指向的内容,就需要这种多级指针的声明.
后面两个参数是整数,不考虑.
然后第四个参数,首先int返回值为整数,然后()这个东西说明是一个指向函数的指针.后面带个括号(void,void)是这个函数的参数,带的两个void类型的参数.(这里是强制类型转换的类型,意思是将之后的那个函数强制转换成这个类型.也就是全是void的类型)*
writelines就是按顺序输出.
然后是错误信息.
关于排序函数 之前也算是讲过.
就是把交换的判断依据变成了(*comp)(v[i], v[left]<0 )而这个实际的函数就是那连个numcmp或者strcmp.
就是通过对比两个字符串,前者大于后者返回正数,前者小于后者返回负数.等于返回0.
如果后者小于前者(<0)的情况下,交换两个元素的位置.
然后引用自身.
numcmp就是把字符串强制转换成正数,然后比较后返回相应的数.

相关文章

  • 函数指针

    概念: 指针函数, 函数指针, 指针数组, 数组指针, 指向数组的指针, 指向函数指针数组的指针。

  • 指针

    一. 指针指向的是对象的地址//函数指针:指针指向函数//指针函数:函数返回指针 二.

  • 5.11指向函数的指针

    C语言中函数不是变量,单可以定义指向函数的指针,这种类型的指针可以被赋值存放在数组中,传递给函数以及作为函数的返回...

  • 回调函数

    函数指针 (1) 函数指针是指指向函数而非指向对象的指针。像其它指针一样,函数指针也指向某个特定的函数类型,函数类...

  • C语言基础知识点

    函数指针与回调函数 1、函数指针:函数指针是指向函数的指针变量,以下实例声明了函数指针变量 p,指向函数 max:...

  • C语言学习六 — 函数指针,回调函数,字符串与结构体

    函数指针 函数指针是指向函数的指针变量。 通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向...

  • C语言基础教程之函数指针

    函数指针 函数指针是指向函数的指针变量。通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函...

  • C函数指针

    函数指针 函数指针是指向函数的指针变量。通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函...

  • c++ 指针

    函数指针 是指向函数的指针变量,即重点是一个指针。一种特殊的指针,它指向函数的入口;要声明指向特定类型的函数指针,...

  • Coursera公开课——C++ Week2笔记

    函数指针 函数指针直接指向函数的开头。

网友评论

      本文标题:5.11指向函数的指针

      本文链接:https://www.haomeiwen.com/subject/srzvhxtx.html