zoukankan      html  css  js  c++  java
  • 《C/C++ 高级开发 与Linux内核源码探析 提高班(王保明老师)【2】》

     指针铁律:

     

     

       

     

     

     

     

    指针类型不一样,导致  p+1 的步长不一样;

    这就是C和Java 的区别

    数据类型的本质是什么?——固定内存大小的别名

    指向的数据类型不一样,则+1 的步长不一样

    数组名(a) 代表数组首元素地址

    &a:代表整个数组

     复习:

    第二套:

    一级指针 -> 二级指针:

    在被调用函数里面分配内存;在主调用函数里面使用

    为了分清内存在主调用函数和被调用函数里面分配

    https://blog.csdn.net/qq_32483145/article/details/52901230

    通过传指针改变指针所指向的地址:

    1. 指针引用 

    2. 二级指针

     

    传进去的 pp是个二级指针

    形参变了实参没变,但是把实参里指向的地址变了... 

    形参和定义在函数里面的局部变量没有任何区别 ... 

    调试:

     

     

    这个 return buf 只是返回了一个  char * —— 把内存块的首地址返回出去了
    并没有把整个内存块返回 ,所以返回的这个指针成了一个垃圾指针 ... 

    不是代码入栈,是内存空间入栈

     

     

    p=p+2 改变了指针变量

    free(p) 是从新的位置开始释放 ... 

    解决方案:

  • 相关阅读:
    Swift协议+代理
    socket编程详解
    Sublime Text 3下 Emmet 使用小技巧
    sublime text3 针对于前端开发必备的插件
    Emmet使用手册
    使用Emmet(前身Zen Coding)加速Web前端开发
    Emmet的高级功能与使用技巧
    RSS订阅推荐
    UIView中常见的方法总结
    技术博客rss订阅源收集
  • 原文地址:https://www.cnblogs.com/cx2016/p/13084776.html
Copyright © 2011-2022 走看看