zoukankan      html  css  js  c++  java
  • 指针学习系列一 基础知识

    本系列文记录我对指针的理解,从新手入门级写起,文字代码全手写,大神们发现错误请给我留言,谢谢!欢迎进一步讨论可以联系邮件tinyork@163.com

    -1- 基础知识

    1指针是一种变量类型,int*int一样,指针指向变量a是指指针的内容是变量a的地址。
    1 对比普通数据类型
    int a=1;  
    //内存腾出一块4k的空间,首地址给a(设120),a=1则将1填进这块内存
    int* b=&a;
    //内存腾出一块空间,依据指针所占内存和机子有关,首地址给b(设250),b=&a则将a那块内存的地址给b,即b这块内存里面的内容是120。
    // (120)=1,(250)=120,表示内存编号/地址为120的地方内容为1,b指向a
    int* b=new int(3);
    //内存新分配一块int的空间出来(设300),其地址是b的内容,其内容是3
    // (250)=300,(300)=3
    2链表结构
    上面的例子其实有隐蔽的地方待挖掘。。
    struct node{
        int data;
        node *next;
        node(int d=0,node *n=NULL):data(d),next(n){}
    };
    // 以下的和例1对比
     
    node *head=new node(2);
    // 内存分配两块空间出来,第一块是指针变量空间,首地址给head(250),第二块大小是struct大小,地址(260)交给head的内容
    // (250)=260,(260)=2,(260+1*4)=NULL,一个字节int大小
    node *p=new node(3);
    // 设p地址270,指向280,(270)=280,(280)=2,(280+1*4)=NULL
    head->next=p;
    // (260)(2)=270
    // 对指针变量就形成了一连串的指向:(250)=260,(264)=274,(274)=NULL

    → 书籍《
    C与指针》
       把指针变量用圆形表示,内存或其他用方块表示,这个结构给我灵感。

    下周是考试周,放假慢慢写。

  • 相关阅读:
    NOIP201208同余方程
    NOIP模拟赛 最佳组合
    NOIP模拟赛 拓展
    CF1253E Antenna Coverage(DP)
    LOJ6033「雅礼集训 2017 Day2」棋盘游戏 (博弈论,二分图,匈牙利算法)
    CF582E Boolean Function(DP,状态压缩,FMT)
    CF750G New Year and Binary Tree Paths(DP)
    Codeforces Round 596 题解
    AGC008E Next or Nextnext(组合计数,神奇思路)
    ARC082E ConvexScore(神奇思路)
  • 原文地址:https://www.cnblogs.com/tinyork/p/4226690.html
Copyright © 2011-2022 走看看