zoukankan      html  css  js  c++  java
  • 《C和指针》 读书笔记 -- 第13章 高级指针话题

    1.函数指针

      int (*f)();

      int *(*f[])();

    用途:

    【1】回调函数

    e.g.

    /*在一个单链表中查找指定值*/

    Node *search_list(Node *node,void const *value,int (*compare)(void const *,void const *) )

    {

      while(node != NULL)

      {

        if(compare(&node->value,value)==0)

          break;

        node=node->link;

      }

      return node;

    }

    int compare_ints(void const *a,void const *b)

    {

      if(*(int *)a == *(int *)b)

        return 0;

      else

        return 1;

    }

    desired_node=search_list(root,&desired_value,compare_ints);

    【2】转移表

    double add(double,double);

    double sub(double,double);

    double mul(double,double);

    double div(double,double);

    double (*oper_func[])(double,double)={add,sub,mul,div};

    result=oper_func[oper](op1,op2);

    2.命令行参数

    int main(int argc,char **argv)

    3.字符串常量

    当一个字符常量出现在表达式中时,它的值是一个指针常量。编译器把这些指定字符的一份拷贝存储在内存的某个位置,并存储一个指向第一个字符的指针。

    "xyz"+1;

    "xyz"[2];

    remainder=value%16;

    if(remainder<10)

      putchar(remainder+'0');

    else

      putchar(remainder-10+'A');

  • 相关阅读:
    Graphics竖排打印字体
    VC GetDlgItem
    C# FontStyle
    VC弹出"选择文件"和"选择文件夹"对话框(转)
    VC获取应用程序路径
    SqlServer延时函数
    volatile修饰变量
    外部命令和内部命令
    curl命令简单使用
    close_socket断开连接的方式
  • 原文地址:https://www.cnblogs.com/hello2mhb/p/3403431.html
Copyright © 2011-2022 走看看