深入理解C语言指针及占据内存空间-创新互联
原文链接:https://www.cnblogs.com/l-hh/p/12288613.html
创新互联专注于企业全网整合营销推广、网站重做改版、长岛网站定制设计、自适应品牌网站建设、H5页面制作、商城网站建设、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为长岛等各大城市提供网站开发制作服务。第一、了解内存空间
本文章文字有点多,会有点枯燥,配合图文一起看可以缓解枯燥,耐心阅读哦!!!
先了解内存地址,才更好的理解指针!
我们可以把内存想象为成一列很长很长的货运火车,有很多大小相同的车厢,而每个车厢正好相当于在内存中表示一个字节
。这些车厢装着不同的货物,就像我们的内存要存着各式各样的数据。
多啰嗦一下
我们平时在电脑上能够听音乐、看视频和文章,其实看到的这些东西就是内存中每个“车厢”里面的数据,这些数据最终还是由二进制0/1演变而成。
虽然视频、文章、音乐等这些信息在我们眼里是不同的,但对于计算机来说它们在内存中都是以二进制的形式来表示。
因为我们要知道去哪存或取数据,所以内存中每个字节都有对应的编号,就像火车上的车厢编号一样。而这个内存中每个字节的编号就是我们常说的内存地址,是按一个字节接着一个字节的次序进行编址。如下图所示:
凡事多问几个为什么?
1. 为什么内存地址都有0x开头?
0x 开头代表以十六进制来表示的意思。
2. 为什么我们平时看到内存地址是这样的呢?如图:
因为内存容量很大,容量大字节数自然也多了,所以需要更多位来编址内存地址。上图的(0x00 ...)内存地址这里只是便于理解!
3. 为什么我那么菜呢?
哈哈哈......你心里没点*数吗?
关于内存字节
- 1个内存地址只存1个字节 (Byte);
- 1个字节等于8位二进制,每一位二进制的0或1,叫“比特”(bit);
- 比特是最小单位,字节是比特的集合,也是一个单位;
内存给数据类型地址分配如下:
- char:占一个字节分配一个地址;
- int: 占四个字节分配四个地址;
- 还有long、float、double等类型,等着你来动手测试。
可以使用sizeof进行验证:
#includeint main () { printf("sizeof(char)=%u\n",sizeof(char)); printf("sizeof(int)=%u\n",sizeof(int)); return 0; }
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章标题:深入理解C语言指针及占据内存空间-创新互联
链接分享:http://abwzjs.com/article/dosoeg.html