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类型修饰的

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

  • 相关阅读:
    20180320作业2:进行代码复审训练
    20180320作业1:源代码管理工具调查
    软工作业PSP与单元测试练习
    软工课后作业01-P18第四题
    20180320作业2:进行代码复审训练
    判断传入的电子邮箱账号的正确性
    软工课后作业01-00365
    实现模块判断传入的电子邮箱账号的正确性
    个人介绍
    20180320作业2:进行代码复审训练
  • 原文地址:https://www.cnblogs.com/Cucucudeblog/p/9709875.html
Copyright © 2011-2022 走看看