函数指针
//函数指针//定义一个函数int add(int x, int y){    return x + y;}void main(){    //定义函数指针    int(*android)(int, int);    android = add;    int result = android(3, 5);    printf("result==%d\n", result);    getchar();}

联合体

//定义一个联合体,特点,所有的字段都是使用同一块内存空间; union Max{    long i; //4个字节     int k; //4个字节     char ii;//1个字节 };void main(){    printf("max:%d\n", sizeof(union Max));    //实验    union Max m;    m.k = 123;    m.i = 100;    printf("m.i=%d\n", m.i);    printf("m.k=%d\n", m.k);    getchar();}

枚举

//枚举enum WeekDay {    Monday=10, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday//默认从零开始加,若Monday=10,Saturday则为16};void main(){    enum WeekDay day = Wednesday;    printf("%d\n", day);    getchar();}

别名

typedef int i;typedef long l;typedef float f;void main(){    i m = 10;    l n = 123123123;    f s = 3.1415;    printf("%d\n", m);    printf("%ld\n", n);    printf("%f\n", s);    system("pause");}

结构体

//结构体struct student{    int age;//4个字节    float score;//4个字节    char sex;//1个字节};void main(){    //使用结构图    struct student stu = { 18, 98.9, 'W' };    //结构体取值     printf("stu.age==%d\n", stu.age);    printf("stu.score==%.1f\n", stu.score);    printf("stu.sex==%c\n", stu.sex);    //结构体赋值    stu.age = 20;    stu.score = 100;    stu.sex = 'M';    printf("stu.age==%d\n", stu.age);    printf("stu.score==%.1f\n", stu.score);    printf("stu.sex==%c\n", stu.sex);    //结构体的长度     //结构体的长度一定是最长的数据元素的整数倍    printf("struct student长度==%d\n", sizeof(struct student));//12    getchar();}

结构体指针

//结构体指针//定义结构struct student{    int age;//4个字节     float score;//4个字节     char sex;   //1个字节 };void main(){    //使用结构图    struct student stu = { 18, 98.9, 'W' };    //结构体指针    struct student *point = &stu;    //二级指针    struct student** point2 = &point;    //取值运算(*point).age  等价于 point->age      printf("(*point).age ==%d\n", (*point).age);    printf("point->age ==%d\n", point->age);    printf("point->score ==%f\n", point->score);    printf("point->sex ==%c\n", point->sex);    //赋值运算    point->age = 20;    point->score = 100;    point->sex = 'M';    printf("point->age ==%d\n", point->age);    printf("point->age ==%d\n", point->age);    printf("point->score ==%f\n", point->score);    printf("point->sex ==%c\n", point->sex);    //二级结构体指针取值 (*point).age  等价于 point->age   所以  (**point).age 等价于 (*point)->age    printf("(**point2).age ==%d\n", (**point2).age);    printf("(*point2)->age ==%d\n", (*point2)->age);    //二级指针赋值    (**point2).age = 2000;    printf("(**point2).age ==%d\n", (**point2).age);    printf("(*point2)->age ==%d\n", (*point2)->age);    getchar();}

更多相关文章

  1. Android(安卓)MediaRecorder系统结构
  2. 【Android开发】Android应用程序目录结构
  3. Android流量统计
  4. Android中的数据结构解析(四)SparseArray和ArrayMap
  5. 20172323 2017-2018-2《程序设计与数据结构》第十一周学习总结
  6. Android(安卓)源代码编译前后的目录结构
  7. Android工程源文件结构
  8. Android(安卓)MP4取得播放时长的方法
  9. Android系列教程之Android项目的目录结构

随机推荐

  1. Android(安卓)FAQ
  2. 引用系统资源 error: Error: Resource is
  3. Android学习札记24:收集到的一些关于解决B
  4. Android自定义控件——自定义属性
  5. Android(安卓)TypedArray源码详解
  6. Android(安卓)ApiDemos示例解析(110):Vie
  7. 第10章(2)---ThreadLocal
  8. ProgressBar 修改progressDrawable 出现s
  9. android开发-界面设计基本知识Ⅳ
  10. 三端易用的现代跨平台JsBridge之 IOS篇