服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C/C++指针与内存管理图文详解

C/C++指针与内存管理图文详解

2022-09-14 16:02知来者逆 C/C++

这篇文章主要为大家详细介绍了C/C++指针与内存管理,使用文图并叙的方式,文中图片介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

指针内存管理始终是C/C++比较容易模糊的知识点,但在C/C++编程中又绕不开的地方,特别在下位机上,会频繁的与指针打交道,如果概念模糊,一不小心就会写出冗余的代码,可能会引起多余内存开销或者直接影响运行速度。

一.指针

1.计算机内存主要分成这几个区,每个区又分成无数个字节(Byte),每个字节(Byte)都有唯一的编号,而这个编号就这个字节的指针地址。一般程序能读写的区域只有全局变量、堆区、栈区。下面是计算机内存的示意图:

C/C++指针与内存管理图文详解

每个字节(Byte)对应的编号地址就是指针地址:

C/C++指针与内存管理图文详解

在X86的系统上,每个字节(Byte)都由8位(bit)组成:

C/C++指针与内存管理图文详解

2.指针与变量

当定义一个变量的时候,比如 int a = 1025,在X86 系统下IDE会在栈中申请连续的4个字节(Byte)的大小用来存放这个数。如下图:

C/C++指针与内存管理图文详解

这个字节大小可以用sizeof(int)来查看。

C/C++指针与内存管理图文详解

那么对于int的变量来说,这个4个字节的编号地址就是这个变量的指针地址。

C/C++指针与内存管理图文详解

3.字节与bit

C/C++指针与内存管理图文详解

4.指向指针的指针,p存放的是x的指针地址,而t则存放的是p的地址。

C/C++指针与内存管理图文详解

5.堆中变量,在堆区中new了一块内存。

C/C++指针与内存管理图文详解

 

二.数组

1.一维数组

C/C++指针与内存管理图文详解

2.字符数组

C/C++指针与内存管理图文详解

3.二维数组

C/C++指针与内存管理图文详解

 

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注服务器之家的更多内容!

原文链接:https://blog.csdn.net/matt45m/article/details/120147269

延伸 · 阅读

精彩推荐
  • C/C++c语言:基于函数指针的两个示例分析

    c语言:基于函数指针的两个示例分析

    本篇文章是对c语言中函数指针的两个示例做了详细的分析介绍,需要的朋友参考下...

    C语言中文网5252020-11-29
  • C/C++浅谈c++中的输入输出方法

    浅谈c++中的输入输出方法

    下面小编就为大家带来一篇浅谈c++中的输入输出方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    C++教程网5922021-04-06
  • C/C++C语言中指针的加减运算方法示例

    C语言中指针的加减运算方法示例

    这篇文章主要给大家介绍了关于C语言中指针的加减运算的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用C语言具有一定的参考学习价...

    wincent986092021-08-02
  • C/C++二叉树中叶子节点的统计和树高问题

    二叉树中叶子节点的统计和树高问题

    今天小编就为大家分享一篇关于二叉树中叶子节点的统计和树高问题,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟...

    baiduoWang9372021-07-24
  • C/C++C++实现旋转数组的二分查找

    C++实现旋转数组的二分查找

    这篇文章主要介绍了C++实现旋转数组的二分查找方法,涉及数组的操作,有值得借鉴的技巧,需要的朋友可以参考下...

    C++教程网9432021-02-03
  • C/C++C语言指针应用简单实例

    C语言指针应用简单实例

    这篇文章主要介绍了C语言指针应用简单实例的相关资料,需要的朋友可以参考下...

    杨鑫newlfe10342021-05-10
  • C/C++C++实现LeetCode(100.判断相同树)

    C++实现LeetCode(100.判断相同树)

    这篇文章主要介绍了C++实现LeetCode(100.判断相同树),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下...

    Grandyang5792021-12-01
  • C/C++C语言实现3个数从小到大排序/输出的方法示例

    C语言实现3个数从小到大排序/输出的方法示例

    这篇文章主要给大家介绍了关于如何利用C语言实现3个数从小到大排序/输出的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用C语言具有...

    Linux公社4232021-07-29