Android 下 JNI 开发Day1
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共用相同的地址
19、枚举-3
enum WeekDay {
Monday=0,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday
};
main() {
enum WeekDay day = Sunday;
printf("%d\n",day);
system("pause");
}
枚举中的值是递增的。
枚举默认是从0开始
20、Typedef别名-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