zoukankan      html  css  js  c++  java
  • 结构和其他数据形式

    结构体中关键词struct表示接下来的是一个结构


    struct book{

    ...

    }library;等同于struct book library;


    初始化结构:struct book library = {
    "the ...",
    "dddd"
    };

    struct book gif = {

    .value = 98.3,
    3.4 //紧跟着value

    };
    数组是自动存储类,通常放在堆栈中。太大是把它变为静态的或外部的

    #include<math.h>
    double dummy = sin(0.0)
    编译器装载浮点数版本scanf()


    struct book library[5]; //声明结构数组


    scanf()会把' '留在缓冲区,可用下面修正:
    while(getchar!=' ')
    continue;



    struct guy fellow={
    {
    ...

    }
    ...

    };

    嵌套的初始化

    指向结构的指针 struct guy * him;


    一个结构的名字不是该结构的地址 him = &fellow[0]; 必须用&符号

    指针用-> ,结构用.

    结构作为参数时,会创建一个副本


    允许将一个结构复制给另一个结构,(同一类型)

    在结构中使用字符指针要给它分配存储区


    复合文字: (struct book){...};


    伸缩性数组成员:
    struct flex
    {
    int count;
    double average;
    double scores[];

    };

    ...


    int n ;
    struct flex *pf,*pf2;

    n = 4;
    pf = malloc(sizeof(struct flex) + n * sizeof(double));
    p->count = n;


    n = 7;
    pf2 = malloc(sizeof(struct flex) + n * sizeof(double));
    p->count = n;

    ...

    把结构内容保存到文件中:
    fprintf(book,"%s %s",primer.title,primer.author);指定%39s格式有利于字段结束和开始的位置

    fwrite(&primer,sizeof(struct book),1,pbooks);

    联合(union,与struct区别主要在于同时只有一个成员存在)、枚举(enum)、typedef
    枚举的指定值与数组不同,数组没赋值默认为0,枚举向后递增


    在同一作用域内,对一个变量和一个标记(结构标记,枚举~、联合~)C++因为放在同一个名字空间内会出错,而c不会


    typedef给出的符号名称只限于对类型,解释由编译器,而不是预处理器执行


    typedef char * STR;
    #define STR char* 不同


    typedef struct book{
    ...
    }COM; //COM等同 struct book 与之前的定义声明合在一起不同


    一个函数指针可以作为另一个函数的参数

    可以拥有函数指针的数组
    void (*pf)(char *);

  • 相关阅读:
    在GridView1的RowEditing获取GridView1里面绑定的某一字段
    仿淘宝网站的导航标签效果!
    ASP.NET Cookies简单应用 [ASP.NET | Cookies]
    UpdatePanel使用时注意说明
    Asp.net(C#)显示所有缓存 清除所有缓存
    计算字符在字符串是出现的次数
    新接触了ActionScript3.0 拿出来晒晒~
    转载Windows XP_32bit、Windows 7_32bit、Windows 7_64bit乱序任意安装方法
    新博客庆祝
    Android 电视关闭的动画效果
  • 原文地址:https://www.cnblogs.com/zxj-262410/p/6691258.html
Copyright © 2011-2022 走看看