美文网首页
6.结构体相关

6.结构体相关

作者: RBNote | 来源:发表于2018-07-23 15:40 被阅读9次

一 C 结构体和结构体指针

eg1:

struct Student {
    char *name; //姓名
    int num; //学号
    int age; //年龄
    float score; //成绩
};

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        //网络不一定是个好东西。垃圾太多。
        
        //结构体:通过 . 访问成员变量
        struct Student stu1;
        stu1.name = "RiLeGouLe";
        stu1.age = 10;
        stu1.num = 1001;
        stu1.score = 90.0;
        NSLog(@"%s %d %d %.2f",stu1.name,stu1.age,stu1.num,stu1.score);
        
        //结构体指针: 通过 -> 访问成员变量
        struct Student *stu2 = &stu1;
        NSLog(@"%s %d %d %.2f",stu2->name,stu2->age,stu2->num,stu2->score);
    }
    return 0;
}

一 结构体里面定义函数

通过结构体指针访问结构体里面定义的函数。

struct Hello {
    void(*sayHello)(char *name);
};
void sayHello(char *name) {
    printf("%s你好,该学点东西了!\n",name);
}

int main() {
    struct Hello *hello1 = (struct Hello *)malloc(sizeof(struct Hello));
    
    hello1->sayHello = sayHello;
    hello1->sayHello("张三");
    hello1->sayHello("李四");
    return 0;
}

eg2:

//https://blog.csdn.net/SYQ_aa/article/details/77430345

//结构体指针
//结构体指针调用函数
//typedef 结构体指针。
struct Book {
    char name[30];
    char author[20];
};

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        
        //定义一个结构体数组: 类型是: struct Book
        struct Book bookArr[2] = {{"码农翻身","刘欣"},{"三国演义","罗贯中"}};
        
        //定义一个结构体指针
        struct Book *bp = nil;
        
        for(bp = bookArr; bp < bookArr+2;bp++) {
            printf("Book name :%s author: %s\n",bp->name,bp->author);
        }
    }

//常识性的东西: 这个知识点在看block底层原理.category底层院里的时候特变有用。使用clang转为C++代码后.就是一堆结构体,结构体指针,函数指针。

/**
1.数组首地址
数组名就是数组首地址
数组的第一个元素的地址就是数组的首地址
*/

/**
2.结构体的地址
类比数组--->结构体的地址就是结构体第一个元素的地址。
*/
   //重新让bp指向 数组首地址
        bp = bookArr; // bp = &bookArr[0];
        
        printf("%p--%p\n",bookArr,&bookArr[0]); //0x7ffeefbff560--0x7ffeefbff560
        printf("%p--%p\n",bp,bp->name); //0x7ffeefbff560--0x7ffeefbff560
    return 0;
}

相关文章

  • 6.结构体相关

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

  • 1220学习总结

    复杂数据类型 1.结构体 2.结构体变量的初始化 3.无名结构体 4.宏定义结构体 5.结构体的嵌套 6.结构体数...

  • 6.结构体

    一、定义 C 数组允许定义可存储相同类型数据项的变量 结构是 C 编程中另一种用户自定义的可用的数据类型 它允许存...

  • OC 中的类对象

    objc_class 结构体 objc_ivar_list 相关结构体 objc_method_list 相关结构...

  • TEBPEB相关结构体

    ntdll!_EXCEPTION_REGISTRATION_RECORD +0x000 Next : Ptr32 ...

  • Rust 结构体

    使用结构体组织相关的数据 定义并实例化结构体 定义结构体需要使用struct关键字并为整个结构体提供一个名字。接着...

  • Unreal4蓝图中的结构体变量0040bate1

    蓝图中的结构体变量 利用蓝图结构体变量,可将包含相关信息的不同数据类型一起保存。 结构体是相关联的不同数据类型的合...

  • Android Binder 机制学习4

    1. Kernel 层 Binder 驱动 相关结构体解释 binder_work结构体 binder_work ...

  • 6.类与结构体

    结构体是功能仅逊于类的数据结构,其也可以描述拥有某些属性和行为的事物,只是它的实现机制和类有着本质的区别,应用场景...

  • GO学习笔记08

    面向对象 1.匿名组合 2.同名成员 3.非结构体的匿名字段 4.指针类型 5.面向对象和面向过程 6.结构体类型...

网友评论

      本文标题:6.结构体相关

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