zoukankan      html  css  js  c++  java
  • 小发现

    这个简单的问题没想到我现在才弄清了,不过弄清了就好,一天进步一点点!

    我通过代码来说明:

    int a = 1;

    int b = a;

    a = 3;

    printf("b is %d",b);

    这个运行的结果b is 1,因为b 赋值的时候a = 1.就算后续a再变化b也是当时的值。

    接下来就可以运用到链表的删除上来了。书上有两个版本,但我没有看懂第一个版本为什么有问题,若有大佬帮我回答,在下不胜感激!

    第一个版本:

    void  DeleteList1  (List L)

    {

      List  p = L->next;

      L->next = NULL;//这里虽然L这个链表后续为NULL,但对p链表没有影响。

      while (p != NULL) {
        free(p);

        p = p->next;

      }

    }

    void Delete2 (List L)
    {
      List p,temp;

      p = L->next;

      L->next = NULL;

      while (p ! = NULL) {
        temp = p->next;

        free(p);

        p = temp;

      }

    }

    我好像也隐隐约约感受到了,是不是因为free(p)的原因,导致p后面的片段丢失,p = p->next就会为NULL(这只是我的猜想),等我查查资料了再做回答吧,我先去写栈的基本操作了,写完了就可以玩了,毕竟今天还是国庆节的假期中,哈哈,得抓紧时间玩,不然上课了就又有事情忙了,期待下一次的博客!

  • 相关阅读:
    HiveServer2的配置使用
    hBase-thrift 实践(java)
    Building Apache Thrift on CentOS 6.5
    linux安装thrift
    Apache Thrift with Java Quickstart(thrift入门及Java实例)
    [转载]/etc/security/limits.conf解释及应用
    storm 入门原理介绍
    Storm的wordCounter计数器详解
    CentOS6.5 安装python
    HBase 协处理器统计行数
  • 原文地址:https://www.cnblogs.com/ranyang/p/13777523.html
Copyright © 2011-2022 走看看