zoukankan      html  css  js  c++  java
  • C语言进阶——Day 1

    C语言提高笔记

    Day 1

    1. 小数据赋给大变量,首位是1则在前面自动补充1,首位是0则在前方自动补充0。
    2. 大数据赋给小变量,低位字节对齐,truncate截断,有可能会造成数据丢失。
    3. 程序和进程的差别:程序是源文件经过编译后的可执行文件,进程是被操作系统从程序开始到结束的整个时间。
    4. 程序在拉入内存中之前就已经具备text段和initialized data段,拉入内存后才具备进程空间中的其他段,一般来说0-3G属于用户空间,3G-4G属于系统空间,这一段空间不讨论。32位机每一个进程都是虚拟内存,都可以做到4G空间。
    5. 注意硬盘空间,虚拟内存和真实内存之间的关系。
    6. 我们对变量取地址,取的是虚拟的地址而非真实的地址。

     

        如int a中变量a就是未初始化变量,处于未初始化数据段

        int b=200,变量b是已经初始化变量,处于初始化数据段,可读可写,处于rw段,200一般

        char *p=”china”,其中p位于rw段,”china”处于ro段

        int a=20,其中20常直接放在代码段

        由以上可知,常量有可能放在text段,也有可能放在ro段,

      8. 程序中的变量常量在进程空间中的位置

     

    如此存放原因,

    (1)回顾四种修饰符:

    auto:修饰局部变量,默认为auto,随用随开,用完即消

    register:修饰局部变量,将内存变量升级到CPU寄存器中存储

    extern:修饰全局变量

    static:修饰局部变量,改变局部变量生命周期,使其生命周期同进程

    (2)栈和堆的存储

    栈中可以存放任意类型的变量,但必须是aoto类型修饰的

    注意,局部变量是存放在栈上,全局变量存放在堆上

  • 相关阅读:
    Python笔记17(Django之路由系统)
    Python笔记16(Django介绍与安装)
    Python笔记16(Web框架本质)
    序列的区间操作
    并查集(入门)
    (补题 Uva 3027)Corporative Network
    (补题 cf 1167C)News Distribution
    (补题 CF 1013B 模拟)And
    (补题 CF 1234C)Pipes
    (补题 POJ 1679 次小生成树)The Unique MST
  • 原文地址:https://www.cnblogs.com/Cucucudeblog/p/9709875.html
Copyright © 2011-2022 走看看