• 结构体,位域,共用体


    #include <stdio.h>
    #include <string.h>
    /**
     * 结构体
     */
    struct Books{
    char a[30];
    char b[30];
    int c;
    }Book1,Book2;
    
    /**
     * 结构体作为参数
     * @param book [description]
     */
    void printBook( struct Books book )
    {
       printf( "Book a : %s
    ", book.a);
       printf( "Book b : %s
    ", book.b);
       printf( "Book c : %d
    ", book.c);
    }
    
    /**
     * 结构体指针作为参数
     * @param book [description]
     */
    void printBook1( struct Books *book )
    {
       printf( "Book a : %s
    ", book->a);//指针访问结构成员用->
       printf( "Book a : %s
    ", (*book).a);//直接访问结构成员用.
       printf( "Book b : %s
    ", book->b);
       printf( "Book c : %d
    ", book->c);
    }
    
    void main()
    {
    // strcpy(Book1.a,"asdasdasdasd");
    // strcpy(Book1.b,"123123");
    // Book1.c = 212;
    // printBook(Book1);
    // 指向结构的指针
    // struct Books *b;
    // b = &Book1;
    // printBook1(b);
    // printBook1(&Book1);
    
    /**
     * 位域
     */
    // struct bc{
    //  unsigned int a:1;
    //  unsigned int  :1;
    //  unsigned int b:5;
    //  unsigned int c:3;
    //  unsigned int d:8;
    // }bit,*pbit;
    
    // bit.a = 1;
    // bit.b = 30;
    // bit.b = 33;//定义的数字不能超过规定的内存 否则会编译失败
    // bit.c = 7;
    // bit.d = 255;
    // printf("%d,%d,%d,%d
    ", bit.a,bit.b,bit.c,bit.d);
    // pbit = &bit;
    // pbit->a = 1;
    // pbit->b = 31;
    // pbit->c = 7;
    // pbit->d = 255;
    // printf("%d,%d,%d,%d
    ", bit.a,bit.b,bit.c,bit.d);
    
    //共用体共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。
    //您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。
    //共用体提供了一种使用相同的内存位置的有效方式。
    //共用体占用的内存应足够存储共用体中最大的成员。
    // union Data{
    //  int i;
    //  float j;
    //  char k[20];
    // }data;
    // printf( "Memory size occupied by data : %d
    ", sizeof(data));//Memory size occupied by data : 20
    // data.i = 10;
    // data.j = 220.5;
    // strcpy( data.k, "C Programming");
    // printf( "data.i : %d
    ", data.i);
    // printf( "data.j : %f
    ", data.j);
    // printf( "data.k : %s
    ", data.k);
    /////////////////////////////////////////////////////
    // data.i : 1917853763                             //
    // data.j : 4122360580327794900000000000000.000000 //
    // data.k : C Programming                          //
    /////////////////////////////////////////////////////
    ///只有最后赋给变量的值才能够保存下来,其他的数据有损伤
    }
  • 相关阅读:
    IDEA下Maven的pom文件导入依赖出现Auto build completed with errors
    org.apache.jasper.JasperException: java.lang.NullPointerException
    Eclipse下导入web项目(Some projects cannot be imported because they already exist in the workspace)
    JS中构造函数的方法定义在原型对象里
    JS变量赋值
    JDBC以及连接池连接MySQL出现时区错误问题
    chrome中如何截取整个网页
    java中final、super、static关键字的使用
    初识less
    根据当前时间显示问候语
  • 原文地址:https://www.cnblogs.com/godehi/p/13087363.html
Copyright © 2020-2023  润新知