C语言day02-11变量内存分析

pragma mark - 变量内存分析

/**
  1. 字节和地址
     内存就是字节,内存以“字节为单位”
  2. 变量的存储 占据的存储空间
    一个变量所占用的存储空间,不仅跟变量类型有关,而且还跟编译器环境有关。同一种类型的变量,在不同编译器环境下所占用的存储空间又是不一样的
    * 所占用字节数跟类型有关,也跟编译器环境有关
    * 内存由大到下寻址
    * 变量存储单元的第一个字节的地址就是该变量的地址
    * 任何变量在内存中都是以二进制的形式存储。一个负数的二进制形式,其实就是对它的正数的二进制形式进行取反后再+1(取反的意思就是0变1,1变0)
            编译器
    类型    16位  32位  64位(只关注64 因为是Mac都是64位的)
    char    1     1     1
    int     2     4     4
   float    4     4     4
  double    8     8     8
   short    2     2     2
    long    2     2     2
 long long  2     2     2
    void*   2     4     8

 
 */

pragma - mark -代码

#import <Foundation/Foundation.h>

int main()
{
    // 内存寻址从大到小 , 如果按照这种规则,那么先定义的变量内存地址一定大于后定义的变量
    /**
     *  比如当前地址有 0ffc1~0ffc16
     */
    int number = 0; // 0ffc13~0ff16
    int value = 0;  // 0ffc9~0ff12
    
    // 如何获得变量的详细地址(变量地址),&变量名称
    //  利用%p展位符来打印变量的详细地址
    // 输出的是一个十六进制的数
    //      a/b/c/d/f/j
    //      10/11/12/13/14/15
            // 10/11/12/13/14/15
    printf("%p\n",&number);// 先定义的 内存地址越大
    printf("%p\n",&value);
    

    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 概述在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似...
    liudhkk阅读 9,254评论 3 38
  • 今天看到一篇不错的文章关于OC内存管理的,转载一下与你共享概述我们知道在程序运行过程中要创建大量的对象,和其他高级...
    niceSYT阅读 502评论 0 2
  • ​ [TOC] 1.引言 1.1目的 ​ 本文档的目标用户为iOS开发人者,提供在iOS项目开发过程中...
    extanstory阅读 326评论 0 0
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,626评论 11 349
  • 刚刚注册了间书,第一次在间书写作,已经好久没有静下心写点东西了。 以后养成写作的习惯,提高写作水平。 加油!
    路易斯杨阅读 157评论 0 0

友情链接更多精彩内容