美文网首页
c++ 8、结构体

c++ 8、结构体

作者: 八戒无戒 | 来源:发表于2020-05-10 17:27 被阅读0次

1、结构以定义

typedef struct 
{
     member_type1 member_name1;
     member_type2 member_name2;
     member_type3 member_name3;
      .
      .
} object_names;

示例:
typedef struct
{
     char[50] title;
     char[500] desc;
     int id;
}Book;

2、访问结构成员

成员访问运算符.访问
结构体指针->访问
有如下代码>>>>>>:

#include <iostream>
#include <string>
#include <stdio.h>
using namespace std;

typedef struct
{
    string title;
    string desc;
    int id;
}Book;

int main()
{
    Book book1;
    Book book2;

    // 成员运算符访问
    book1.title = "三国演义";
    book1.desc = "乱世争霸";
    book1.id = 1;

    // 指针访问
    Book *p;
    p = &book2;
    p->title = "水浒传";
    p->desc = "梁山起义";
    p->id = 2;

    cout << book1.title << endl;
    cout << book2.title << endl;
    return 0;
}

运行结果:

三国演义
水浒传

3、结构体传参

函数可以将结构体当作参数转递,也可将结构体指针当作参数进行传递。需要注意的是,当结构体作为形参参入函数时,是无法真正改变结构体内部的值的

#include <iostream>
#include <string>
#include <stdio.h>
using namespace std;
typedef struct
{
    string title;
    string desc;
    int id;
}Book;

extern void PrintBook(Book book);    // 此种传参无法改变book结构体的值
extern void PrintBook(Book *book);


int main()
{
    Book book1;
    Book book2;
    Book *p;
    p = &book2;

    book1.title = "海底两万里";
    book1.desc = "海底探险";
    book1.id = 3;

    book2.title = "钢铁是怎样炼成的";
    book2.desc = "小男孩的成长史";
    book2.id = 4;

    PrintBook(book1);
    PrintBook(p);
    return 0;
}

void PrintBook(Book book)
{
    cout << book.title << endl;
    cout << book.desc << endl;
    cout << book.id << endl;
}

void PrintBook(Book *book)
{
    cout << book->title << endl;
    cout << book->desc << endl;
    cout << book->id << endl;
}

运行结果:

海底两万里
海底探险
3
钢铁是怎样炼成的
小男孩的成长史
4

相关文章

  • c++ 8、结构体

    1、结构以定义 2、访问结构成员 成员访问运算符.访问:结构体指针->访问:有如下代码>>>>>>: 运行结果: ...

  • JSON数据转C++结构体

    JSON数据自动生成C++结构体 JSON数据自动生成C++结构体背景nlohmann/json基础Python自...

  • Texture之ASDisplayNodeInternal.h

    c++容器 c++类型:atomic_uint 罕见的c++语法 初始化结构体 c结构体 检查指定类是否重写了另一...

  • C++常用容器复习

    cin>>a cout<

  • c++类相关

    c++结构体与c结构体的区别 c语言 c++ c++类的使用 类的权限管理 对类的成员的访问做限制 private...

  • 01-OC对象的本质

    OC是通过C/C++的什么数据结构实现我们的OC对象呢 结构体--OC对象的本质就是C/C++的结构体 Class...

  • C++中结构体

    C++中结构体并不是C中的结构体了 C++的结构体更像是一种特殊的类 他与类一样 可以有public privat...

  • NDK开发—结构体、共用体与C++基础(三)

    目录 结构体、共用体与C++基础11、结构体字节对齐2、共用体3、C++ 输出函数符号兼容引用字符串C字符串字符串...

  • C++总结

    结构体成员变量是什么? C++结构体怎么定义 struct aa { }或者typedef struct aa {...

  • C++系列 --- 结构体、权限修饰符、类简介

    一、结构体 结构体:自定义的数据类型 C++ 中的结构和C中的结构有什么区别? C++中的结构除具备了C中的所有功...

网友评论

      本文标题:c++ 8、结构体

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