题目如图:

1.把要删除pToBeDeleted的节点的后面节点覆盖点要删除的节点pToBeDeleted

2.要考虑如果删除的节点是最后一个节点怎么办

3.要考虑如果总共只有一个节点,删除的是头结点或者说是尾节点怎么办

———————————————————————————————————函数指针的用法,一个特例,将所有的奇数移动到所有的偶数前面——————————————————————————————————————————————————————

是和快速排序的思路是相同的,就是在函数调用的时候使用了一个函数指针的形式,对于函数指针开始的时候不熟,现在对函数指针进行一个学习或者复习的过程。

对于一些模糊的概念进行整理:

首先看的指针函数和函数指针有什么区别:

(1)指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针

  定义的形式是:     类型标识符    *函数名(参数表)

首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数中,函数返回值必须赋给同类型的指针变量。

表示:

float *fun();

float *p;

p = fun(a);

(2)注意指针函数与函数指针表示方法的不同,千万不要混淆。最简单的辨别方式就是看函数名前面的指针*号有没有被括号()包含,如果被包含就是函数指针,反之则是指针函数

函数指针是指向函数的指针变量,即本质是一个指针变量。

 int (*f) (int x); /* 声明一个函数指针 */

 f=func; /* 将func函数的首地址赋给指针f */

类型说明符 (*函数名)(参数)

其实这里不能称为函数名,应该叫做指针的变量名。

(3)指针的指针

声明的形式:char ** cp;

因此会有如下的解释

指针的指针需要用到指针的地址。
        char c='A';
        char *p=&c;
        char **cp=&p;
    通过指针的指针,不仅可以访问它指向的指针,还可以访问它指向的指针所指向的数据。下面就是几个这样的例子:
        char *p1=*cp;
        char c1=**cp;

关键在于熟练掌握操作符的优先级和++的使用方法
*p=*p+1;此处*为间接访问,P指向的地址内容+1后的值赋给P指向的地址
*p++;//这里*和++为同一优先级,P先和++结合;右移P++是先使用P的值,后P的值+1
//*p++和*p=*p+1的区别是后者是P指向的地址的值+1,前者是P的地址+1,所有后者、即单独的*p++;等价于P++,是一种容易误解的写法,在实际程序中不会用到*p++;这样的语句
*++p;//类似,先是P指向先一个单元,再间接访问P指向的地址的值,同样没有单独使用 *++p;语句,如果单独使用 *++p;则和++p等价 (4)指向指针数组的指针
指针的指针另一用法旧处理指针数组。有些程序员喜欢用指针数组来代替多维数组,一个常见的用法就是处理字符串 其中的一个样例的使用是这样的:
char *Names[]=
        {
             Bill,
             Sam,
             Jim,
             Paul,
             Charles,
             0
        };         main()
        {
            char **nm=Names;
            while(*nm!=0) printf(%s\n,*nm++);
        } 注意数组中的最后一个元素被初始化为0,while循环以次来判断是否到了数组末尾。具有零值的指针常常被用做循环数组的终止符。程序员称零值指针为空指针(NULL)。采用空指针作为终止符,在树种增删元素时,就不必改动遍历数组的代码,因为此时数组仍然以空指针作为结束。

最新文章

  1. js构建ui的统一异常处理方案(三)
  2. Java 程序的内存泄露问题分析
  3. 【BZOJ-3573】米特运输 树形DP
  4. C语言王国探秘一
  5. 二叉搜索树 POJ 2418 Hardwood Species
  6. Unity3d 引擎原理详细介绍
  7. 理解AOP
  8. SQL的IN, SOME,ANY,IN
  9. 如何在iOS 7.0中隐藏状态栏
  10. Linux五种IO模型
  11. Ext学习-基础组件介绍
  12. JNDI和在tomcat中配置DBCP连接池 元数据的使用 DBUtils框架的使用 多表操作
  13. 【BZOJ 1010】 [HNOI2008]玩具装箱toy (斜率优化)
  14. Gtest打桩函数
  15. PHP学习笔记十九【析构函数】
  16. whereis、which、find的区别
  17. Flask--路由, 配置, 蓝图
  18. php中yaf框架的服务器配置
  19. Gevent 性能和 gevent.loop 的运用和带来的思考
  20. onclick或者其他事件在部分移动端无效的问题

热门文章

  1. HDU2056(rectangles)
  2. Selenium webdriver 元素操作
  3. linux —— 问题解决(锦集)
  4. 【safari挖的那些坑】iOS safari 浏览器 时间乱码(ios时间显示NaN) 问题解决
  5. 微设计(www.weidesigner.com)介绍系列文章(二)
  6. hash表的创建
  7. cocos2d-x精灵移动的方法
  8. SPOJ PGCD (mobius反演 + 分块)
  9. hdu_1875_畅通工程再续 prim和kruskal
  10. Interpolator 插值器