美文网首页
NDK基础:结构体 共用体

NDK基础:结构体 共用体

作者: space0o0 | 来源:发表于2019-11-06 10:41 被阅读0次

结构体

c语言中的结构体,就好比是java中的bean对象。

是一种可自定义的可用的数据类型,它允许存储不同类型的数据项。

定义结构体,需要使用struct关键字。

//使用struct关键字申明一个结构体
struct Book{
    char name;
    int page;
};

//申明一个Book,并赋值,无需像java那样new
Book mBook;
strcpy(mBook.name, “abcde”);
mBook.page=300;

当然,也可以直接在结构体中申明变量。

struct Book{
    char name[50];
    int page;
}sBook;//直接申明一个变量

strcpy(sBook.name, “sssss”);
sBook.page=900;

更便捷的是直接申明的时候传入数据。

struct Book{
    char name[50];
    int page;
}sBook={“aaa”,100};

printf(“book name %s ,page is %d \n”,sBook.name,sBook.page);

共用体

共用体有点类似结构体,不过他是多个变量共用一个结构体,他同时只能存在一个变量的值。

好处就是节省了内存空间。内存大小就是结构体中占最大内存的那个变量的。

他使用union关键字来表示共用体。

例如:

union Bee {
    int a;
    char c[30];
} bbb;

int占2个字节,char在这里申明占30个字节,那么这个共用体就占30个字节空间。

bbb.a=10;
    printf("bbb.a is %d \n”,bbb.a);
    strcpy(bbb.c ,”jijijijij”);
    printf(“bbb.a is %d \n”,bbb.a);
    printf(“bbb.c is %s \n",bbb.c);

log日志
bbb.a is 10 
bbb.a is 1768581482 
bbb.c is jijijijij 

当首次给a赋值,共用体的值是10;
给c赋值后,共用体的a值就不存在了,只有c的值存在;
所以,当有n个变量,可他们同时只存在一个,那么就可以使用共用体,还能节省内存空间。

相关文章

  • NDK基础:结构体 共用体

    结构体 c语言中的结构体,就好比是java中的bean对象。 是一种可自定义的可用的数据类型,它允许存储不同类型的...

  • NDK开发—结构体、共用体与C++基础(三)

    目录 结构体、共用体与C++基础11、结构体字节对齐2、共用体3、C++ 输出函数符号兼容引用字符串C字符串字符串...

  • 【NDK系列3】结构体和共用体

    感觉c这块的内容真的无比枯燥,但在整理的过程中确实又学会了很多 1、结构体 声明和使用 结构体是C编程中一种用户自...

  • C语言学习之十——共用体、枚举类型和typedef

    共用体1.1共用体的概念 :使几个不同的变量共占同一段内存的结构,称为“共用体”类型的结构。1.2 定义共用体类型...

  • 9.结构体与共用体

    1.共用体 共用体的概念 : 使几个不同的变量共占同一段内存的结构称为 “共用体”类型的结构。 定义共用体类型变量...

  • 结构体 联合体 位域

    union 共用体/联合体 结构体和共用体的区别在于:结构体的各个成员会占用不同的内存,互相之间没有影响;而共用体...

  • 结构体、共用体与C++基础

    结构体、共用体与C++基础1 [TOC] 1、结构体 结构体是C编程中一种用户自定义的数据类型,类似于Java的J...

  • C语言和OC的结构体(struct)

    Struct(结构体) 1.结构体定义 2.结构体变量 3.结构体数组 4.C语言结构体指针 5.C语言共用体 6...

  • 三、C语言基础

    A、struct 结构体 结构体:里面所有的成员,默认都是public B、pragma C、union 共用体/...

  • C语言的一些符号含义、 函数含义

    union:共用体/联合体 union 共用体名{成员列表};类似结构体,是一群变量的集合,和集合不同的是: 共用...

网友评论

      本文标题:NDK基础:结构体 共用体

      本文链接:https://www.haomeiwen.com/subject/sgzybctx.html