zoukankan      html  css  js  c++  java
  • C语言 结构体

    //结构体
    
    #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
    //结构体是一种构造数据类型,用途把不同的数据组合成一个整体
    //结构体变量数据大,作为参数的时候一般会使用结构体指针传参
    
    
    //结构体类型不分配内存,不能赋值,存取,运算
    struct nameinfo{
        int num;
        char name[40];
    }d1,d2[9],*d3;//结构体的定义①
    
    //匿名结构体,用于限制该结构体的数量,只给某些有权限的使用
    struct {
        int snum;
        char sname[40];
    }sd1;//匿名结构体,必须在定义的时候就创建变量,其他条件下无法创建
    
    struct mao{
        char ch;
        int a[10];
    };
    
    struct gou{
        int num;
        char name[10];
    };
    
    struct lang{
        int num;
        double longnum;
        char name[10];
    };
    
    void main9(){
        //结构体的定义②
        struct nameinfo info;
        //结构体赋值
        info.num = 1;
        strcpy(info.name, "小米");//数组不可以直接赋值
        printf("结构体的成员变量num=%d,name=%s
    ", info.num, info.name);
        //结构体赋值②
        struct nameinfo d4 = { 2, "华为" };
        //注意:结构体变量用大括号赋值,只有在创建并初始化的时候才可以
        //d1 = { 2, "华为" };  错误 不可如此赋值
    
    
        //结构体指针
        struct nameinfo *p = NULL;
        //结构体指针的初始化①
        p = &info;
        p->num = 2;//结构体指针的赋值
        strcpy((*p).name, "雷云");
        printf("结构体的成员变量num=%d,name=%s
    ", (*p).num, p->name);
        //结构体指针的初始化②
        struct nameinfo *p1 = NULL;
        p1 = (struct nameinfo *)malloc(sizeof(struct nameinfo));
        p1->num = 3;
        strcpy((*p1).name, "马化腾");
        printf("结构体的成员变量num=%d,name=%s
    ", (*p1).num, p1->name);
    
    
        //结构体字节对齐原则--见C语言 结构体(联合体)对齐规则
      
        printf("结构体mao的大小是%d
    ", sizeof(struct mao));
        printf("结构体gou的大小是%d
    ", sizeof(struct gou));
        printf("结构体lang的大小是%d
    ", sizeof(struct lang));
    
    
        system("pause");
    }

  • 相关阅读:
    Educational Codeforces Round 58 A,B,C,D,E,G
    Codeforces Round #530 (Div. 2) F (树形dp+线段树)
    Codeforces Round #530 (Div. 2) A,B,C,D
    bzoj 3262: 陌上花开
    bzoj 2653: middle (主席树+二分)
    费马小定理的证明
    分组背包
    二维费用的背包问题
    luoguP1164 小A点菜(背包问题)
    完全背包问题
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/5250629.html
Copyright © 2011-2022 走看看