zoukankan      html  css  js  c++  java
  • 戴维营第八天上课总结

    结构体是一个类似超级数组一样的定义, 它可以定义许多不同类型的变量, 用struct 加上变量名, 类似于int a这样子的定义, 但区别在于结构需要用{};等三个符号来概括包含里面的内容, 定义好之后, 可在main函数中直接调用, 用(.)或者(->)两个运算符进行调用.

    struct book
    {
        char titleP[MAXTITL]
        char author[AXAUTL]
        float value
    }library;

    上面这样子就是帮结构体book起一个别名叫做library, 在main函数当中我们也可以直接使用library, 还有另外一种声明方法.

    struct
    {
        char titleP[MAXTITL]
        char author[AXAUTL]
        float value
    }library;

    这样子写法就是一开始可以不用给结构体定义变量名, 到最后面的时候直接给结构体起另一个别名library, 这样子可以省略一个命名的步骤.

    下面就是结构题的使用方法

    #include <stdio.h>
    #include <string.h>
    #define MAXTITL 41  //书名的最大长度+1
    #define MAXAUTL 31  //作者名的最大长度+1
    struct book     //结构模板: 标记book
    {
        char title[MAXTITL];
        char author[MAXAUTL];
        float value;
    };
    
    int main(int argc, const char * argv[]) {
        struct book library;    //把library声明为book类型的变量
        printf("Please enter the book title.
    ");
        
        gets(library.title);    //gets是bug的存在, 容易溢出, 一般不推荐使用
        //scanf("%s",library.title);    //访问title部分
        printf("Now enter the author.
    ");
        
        gets(library.author);   //gets是bug的存在, 容易溢出, 一般不推荐使用
    //    scanf("%s",library.author);
        printf("Now enter the value.
    ");
        
        scanf("%f", &library.value);
        printf("%s by %s: $%.2f
    ", library.title, library.author, library.value);
        printf("%s: "%s"($%.2f)
    ", library.author, library.title, library.value);
        printf("Done.
    ");
        return 0;
    }

    C程序内存地址空间布局

    1,文本短(.text:可执行的指令)

    2.数据段

    初始化数据段(全局变量, 静态变量)

    非初始化数据段

     

    初始化数据段需要我们自己定义, 运行之前就代入进去.

    非初始化数据段是由系统在程序运行的时候代入进去的

     

    3.栈(stack) 由系统自己分配

     

    数据是先进后出(或者是后进先出)

     

    a.局部变量

    b.函数调用时返回地址

    c.调用着的环境信息

     

    4.堆(heap)需要我们自行分配释放管理(普通的局部变量)

    由我们自己分配释放管理, 如果我们不去释放, 程序结束时才会由系统自动回收.

     

    程序中的malloc, calloc, realloc等函数都是分配内存. 由小的空间向大的空间分配, 堆是从下向上分配.

  • 相关阅读:
    游标
    浅析数据准备区中的数据结构
    浅析代理键替换管道
    浅析何时进行概况分析
    浅析Staging
    XHTML教程——表单
    XHTML教程——文字格式与特殊字符
    XHTML教程——列表
    XHTML教程——标签
    CSS入门教程——CSS简介
  • 原文地址:https://www.cnblogs.com/iOSCain/p/3991540.html
Copyright © 2011-2022 走看看