Android 下 JNI 开发

本文深入探讨了C语言中结构体和联合体的概念及应用。通过实例代码展示了结构体的定义、使用、长度计算以及联合体的特点和字段共用同一内存空间的特性。适合初学者理解并掌握结构体与联合体的基本操作。
  1. 结构体-8

struct Student {

    int age;

    float score;

    char sex;

};

 

main() {

    struct Student stu = {18, 88.5, 'M'};

}

 

 

使用结构体变量

struct Student stu = {80,55.5,'F'};

struct Student stu2;

stu2.age = 10;

stu2.score = 88.8f;

stu2.sex= ‘M';

 

printf("%d %f %c\n", st.age, st.score, st.sex);

 

结构体长度

 

范例代码:

#include<stdio.h>

#include<stdlib.h>

/**

  结构体

   

*/

 

//定义结构体

struct Student {

    int age;//年龄 4个字节

    float score;//成绩  4个字节

    char sex;//性别  1个字节

};

 

struct Student1 {

    int age;//年龄 4个字节

    float score;//成绩  4个字节

    long sex;//性别  4个字节

};

 

main()

{

    

    struct Student stu = {18, 88.5, 'M'};

   

    //1、取值

    printf("stu.age=%d\n",stu.age);

    printf("stu.score=%.1f\n",stu.score);

    printf("stu.sex=%c\n",stu.sex);

    //2、赋值

    stu.age = 100;

    stu.score = 99.9;

    stu.sex = 'w';

    printf("stu.age=%d\n",stu.age);

    printf("stu.score=%.1f\n",stu.score);

    printf("stu.sex=%c\n",stu.sex);

   

    //3、结构体的长度

    printf("Student的长度=%d\n",sizeof(struct Student));

    printf("Student1的长度=%d\n",sizeof(struct Student1));

 

    system("pause");        

      

}      

 

 

 

18、Union联合体-5

struct Date {

      int year;

      int month;

      int day;

};

union Mix {

     long i;

     int k;

     char ii;

};

main() {

       printf("date:%d\n",sizeof(struct Date));

       printf("mix:%d\n",sizeof(union Mix));

       system("pause");

}

 

范例代码:

#include<stdio.h>

#include<stdlib.h>

/*

联合体

 

*/

//定义一个结构体

struct Date {

      int year;

      int month;

      int day;

};

//定义一个联合体,特点,所有的字段都是使用同一块内存空间;

union Mix {

     long i; //4个字节

     int k; //4个字节

     char ii;//1个字节

};

main() {

       printf("date:%d\n",sizeof(struct Date));

       printf("mix:%d\n",sizeof(union Mix));

     

       //实验

        union Mix m;

        m.i = 100;

        m.k = 123;

        printf("m.i=%d\n",m.i);        

        printf("m.k=%d\n",m.k);            

       system("pause");

}

 

运行结果:如图:

联合体,特点,所有的字段都是使用同一块内存空间;

mix.I mix .k mix.ii共用相同的地址

 

 

本教程由尚硅谷教育大数据研究院出品,如需转载请注明来源。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值