zoukankan      html  css  js  c++  java
  • 结构

    定义结构:定义结构,必须使用 struct 语句。struct 语句定义了一个包含多个成员的新的数据类型。访问结构体里面的成员的时候我们用 . 这个成员访问符。

    1 struct type_name   //关键字struct
    2  {
    3     type1    name1;  //定义类型,如 int ID;
    4     type2    name2;
    5     type3    name3;
    6 .
    7 .
    8 } object_names;   //这是一个可选的结构变量

    举个栗子:

     1 #include <iostream>
     2 #include <cstring>
     3 using namespace std;
     4 
     5 struct books
     6 {
     7     int ID;
     8     char name[100];
     9     char code[100];
    10     char auther[100];
    11 } bookthree ;    //定义变量
    12 
    13 int main()
    14 {
    15     books bookone;    //注意这里是变量,跟bookthree一样的效果
    16     books booktwo;      //定义结构体类型books的变量booktwo
    17     
    18     bookone.ID = 24615;
    19     strcpy(bookone.name, "雏田");
    20     strcpy(bookone.code, "CX520");
    21     strcpy(bookone.auther, "火影忍者");
    22 
    23     bookone.ID = 24520;
    24     strcpy(booktwo.name, "");
    25     strcpy(booktwo.code, "CD520");
    26     strcpy(booktwo.auther, "火影忍者");
    27     
    28     strcpy(bookthree.name, "止水");
    29     strcpy(bookthree.auther, "火影忍者");
    30 
    31     cout << "第一本书的名字:" << bookone.name << endl;
    32     cout << "第一本书的作者:" << bookone.auther << endl <<endl;
    33     cout << "第二本书的名字:" << booktwo.name << endl;
    34     cout << "第二本书的作者:" << booktwo.auther << endl <<endl;
    35     cout << "第三本书的名字:" << bookthree.name << endl;   
    36     cout << "第三本书的作者:" << bookthree.auther << endl ;
    37     return 0;
    38 }

    结果为:

    第一本书的名字:雏田
    第一本书的作者:火影忍者
    
    第二本书的名字:鼬
    第二本书的作者:火影忍者
    
    第三本书的名字:止水
    第三本书的作者:火影忍者

     结构作为参数:可以把结构作为函数参数,传参方式与其他类型的变量或指针类似。举个栗子:

     1 #include <iostream>
     2 #include <cstring>
     3 using namespace std;
     4 
     5 struct books   //结构体books
     6 {
     7     int Id;
     8     char Name[100];
     9     int Date;
    10     char Auther[100];
    11 } book;
    12 
    13 void temp(struct books book)   //结构作为参数传递,跟变量一样到用法
    14 {
    15     cout << "书名:" << book.Name << endl;
    16     cout << "作者:" << book.Auther << endl;
    17     cout << "日期:" << book.Date << endl;
    18 }
    19 
    20 int main()
    21 {
    22     book.Id = 24520;       //这个地方进行结构的赋值
    23     strncpy(book.Name, "伊塔奇", sizeof("伊塔奇") - 1);
    24     strncpy(book.Auther, "火影忍者11", 10);
    25     book.Date = 20190528;
    26     temp(book);
    27     return 0;
    28 }

     结果为:

    书名:伊塔奇
    作者:火影忍者11
    日期:20190528

     指向结构的指针:定义指向结构的指针,方式与定义指向其他类型变量的指针相似,如: struct Books *book1; 结构变量的地址: book1 = &Book1; 为了使用指向该结构的指针访问结构的成员,您必须使用 -> 运算符,如: book1->ID 举个栗子:

     1 #include <iostream>
     2 #include <cstring>
     3 using namespace std;
     4 
     5 struct books   //结构体books
     6 {
     7     int Id;
     8     char Name[100];
     9     int Date;
    10     char Auther[100];
    11 } book;
    12 
    13 void temp(struct books *book)   //结构变量的地址作为参数传递 注意这里的struct可以省略
    14 {
    15     cout << "书名:" << book->Name << endl;  //这里使用->来访问结构成员
    16     cout << "作者:" << book->Auther << endl;
    17     cout << "日期:" << book->Date << endl;
    18 }
    19 
    20 int main()
    21 {
    22     book.Id = 24520;       //这个地方进行结构的赋值
    23     strncpy_s(book.Name, "伊塔奇", sizeof("伊塔奇") - 1);
    24     strncpy_s(book.Auther, "火影忍者11", 10);
    25     book.Date = 20190528;
    26     temp(&book);  //取结构体变量book的地址
    27     return 0;
    28 }

    结果跟上一致。

  • 相关阅读:
    Oracle9i数据库移动过程
    基于索引的SQL语句优化之降龙十八掌
    activex发布步骤
    用ftpsupport进行ftp上传
    周五晚上看了变形金刚
    故宫游
    UTF8转GB2312
    跨数据库的视图【自己留着看】
    数学之美 - 布隆过滤器(Bloom Filter)【转】
    搜索引擎优化SEO的ppt讲义
  • 原文地址:https://www.cnblogs.com/xiaodangxiansheng/p/10933947.html
Copyright © 2011-2022 走看看