avatar

C语言重点理论整理

  今天把最后的两个视频看完了,整理了一下最后的重点和重要的部分。

什么叫分配内存?什么叫释放内存?

  1.操作系统把某块内存空间的使用权利分配给程序叫做分配内存。
  2.操作系统把分配给该程序的内存空间的使用权力回收该程序就不能再使用这一块内存空间叫做释放内存。
  注意事项:释放内存不是把该内存的内容清零。

变量为什么不能初始化?

  不初始化变量通常是一个垃圾值。

说明系统是如何执行 int = 5; 这个语句?

  第1步,编译软件请求操作系统为 i 分配存储空间。
  第2步,操作系统会在内存中寻找一块空闲的区域,把该区域当做 i 来使用。
  第3步,编译软件会把 i 这一块空闲区域关联起来,对字母 i 的操作就是对这块空闲区域的操作。
  第4步,把 5 存储到字母 i 所关联的内存区域中。
  注意事项:所谓内存区域也就是内存的一块存储单元。

什么是指针?什么是地址?什么是指针变量?三者的关系?

  1.指针=地址
  2.地址是内存单元的编号
  3.指针变量是存放内存单元编号的变量

静态和动态变量的异同

  1.相同:都需要分配内存。
  2.不同:
    静态内存是由系统自动分配,由系统自动释放。
    静态内存是在栈分配。
    动态内存是由人手动分配,手动释放(free(q))。
    动态内存是在堆分配,可以跨函数使用。

二进制全部为0的含义

  1.数值为0
  2.字符串“\0”
  3.空指针NULL
  NULL本质也是0,而这个0不代表数字零,而是表示内存单元的编号零,计算机中规定了以零为编号的存储单元的内容不可读,不可写。

文章作者: wangzun233
文章链接: https://wangzun233.top/2019/12/22/C%E8%AF%AD%E8%A8%80%E9%87%8D%E7%82%B9%E7%90%86%E8%AE%BA%E6%95%B4%E7%90%86/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 WangZun233