Android 下 JNI 开发Day1

18Union联合体-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共用相同的地址

19、枚举-3

enum WeekDay {

     Monday=0,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday

};

main() {

       enum WeekDay day = Sunday;

       printf("%d\n",day);

       system("pause");

}

枚举中的值是递增的。

枚举默认是从0开始

20Typedef别名-4

声明自定义数据类型,配合各种原有数据类型来达到简化编程的目的的类型定义关键字。

在计算机编程语言中用来为复杂的声明定义简单的别名;

#include <stdio.h>

#include <stdlib.h>

typedef int i;

typedef long l;

main() {

       i m = 10;

       l n = 123123123;

       printf("%d\n", m);

       printf("%ld\n", n);

       system("pause");       

}

21、结构体指针-10

#include<stdio.h>

#include<stdlib.h>

/**

结构体指针

*/

//定义一个结构体

struct Student{

       int age;

       float score;

       char  sex;       

}        

main()

{      //结构体

      struct Student stu = {20,88.5,'W'};

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

      //结构体指针

      struct Student* stuPoint;

      //赋地址值

      stuPoint = &stu;

      //取值  (*stuPoint).age     

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

      //赋值 (*stuPoint).age =80;

      //另外一种取值 (*stuPoint).等价于 stuPoint-> 例如:

      //(*stuPoint).age 等价于 stuPoint->age

      printf("stuPoint->age=%d\n",stuPoint->age);

      system("pause");     

}     

运行结构如下:

(*stuPoint).age 等价于 stuPoint->age