美文网首页ios
函数指针,联合体,枚举,结构体和结构体指针

函数指针,联合体,枚举,结构体和结构体指针

作者: Peakmain | 来源:发表于2018-06-13 13:45 被阅读1次
函数指针
//函数指针
//定义一个函数
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();
}

相关文章

  • 函数指针,联合体,枚举,结构体和结构体指针

    函数指针 联合体 枚举 别名 结构体 结构体指针

  • 6.C语言杂项

    多级指针 函数指针 结构体 联合体 枚举类型 typedef:给类型起一个别名

  • 结构体的基本操作

    结构体定义和初始化 结构体变量相互赋值 结构体数组 结构体嵌套一级指针 结构体嵌套二级指针 结构体偏移量 联合体 ...

  • 【嵌入式C】一些好用的方法(持续更新)

    枚举变量: 结构体: 共同体: #define: 结构体中的函数指针声明函数指针调用函数 将16进制数转化成同样的...

  • 6.结构体相关

    一 C 结构体和结构体指针 eg1: 一 结构体里面定义函数 通过结构体指针访问结构体里面定义的函数。 eg2:

  • iOS底层探索 02-内存对齐原理

    一. 结构体引入 结构体是由基本数据类型或者指针,数组,结构体/联合体/枚举等类型组成的一种结构,我们可以简单地定...

  • Day10

    指针 指针与函数 练习回调函数 结构体 基本概念 结构体变量初始化 定义结构体变量 结构体变量作用域结论; 和变量...

  • go - 学习笔记

    基础 函数 指针 结构体 接口 错误 协程 通道 基础 函数 指针 结构体 接口 错误 协程 通道

  • C语言20 结构体指针

    C语言20 结构体指针 探测结构体指针的特性 ++、-- 加法与减法 指针相减 使用结构体指针 结构体指针一定要指...

  • C基础-数组指针操作、内存开辟、函数指针和结构体

    数组指针操作的常用几种方式 内存开辟 静态开辟 *动态内存开辟和释放 函数指针(常用于回调) 结构体、结构体指针别...

网友评论

    本文标题:函数指针,联合体,枚举,结构体和结构体指针

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