C语言中的结构体的入门学习教程

2020-01-06 14:15:01于丽
易采站长站为您分析C语言中的结构体的入门学习教程,以struct语句定义的结构体是C语言编程中的重要基础,需要的朋友可以参考下  

C语言中数组允许定义类型的变量,可容纳相同类型的多个数据项,但结构体在C语言编程中,它允许定义不同种类的数据项可供其他用户定义的数据类型。

结构是用来代表一个记录,假设要跟踪图书馆的书籍。可能要跟踪有关每本书以下属性:

  • Title - 标题
  • Author - 作者
  • Subject - 科目
  • Book ID - 编号

    定义结构体
    定义一个结构体,必须使用结构体的struct语句。该struct语句定义了一个新的数据类型,程序不止一个成员。struct语句的格式是这样的:

    
    struct [structure tag]
    {
      member definition;
      member definition;
      ...
      member definition;
    } [one or more structure variables]; 
    

    结构体(structure)标签是可选的,每个成员的定义是一个正常的变量定义,如 int i; 或 float f; 或任何其他有效的变量的定义。在结构的定义的结尾,最后的分号之前,可以指定一个或多个结构变量,但它是可选的。这里是声明书(Book)的结构方式:

    
    struct Books
    {
      char title[50];
      char author[50];
      char subject[100];
      int  book_id;
    } book; 
    

    访问结构体成员
    要访问结构体的任何成员,我们使用成员访问运算符(.)成员访问运算符是编码作为结构体变量名,并且希望访问结构体部件。使用struct关键字来定义结构体类型的变量。以下为例子来解释结构的用法:

    
    #include <stdio.h>
    #include <string.h>
     
    struct Books
    {
      char title[50];
      char author[50];
      char subject[100];
      int  book_id;
    };
     
    int main( )
    {
      struct Books Book1;    /* Declare Book1 of type Book */
      struct Books Book2;    /* Declare Book2 of type Book */
     
      /* book 1 specification */
      strcpy( Book1.title, "C Programming");
      strcpy( Book1.author, "Nuha Ali"); 
      strcpy( Book1.subject, "C Programming Tutorial");
      Book1.book_id = 6495407;
    
      /* book 2 specification */
      strcpy( Book2.title, "Telecom Billing");
      strcpy( Book2.author, "Zara Ali");
      strcpy( Book2.subject, "Telecom Billing Tutorial");
      Book2.book_id = 6495700;
     
      /* print Book1 info */
      printf( "Book 1 title : %s
    ", Book1.title);
      printf( "Book 1 author : %s
    ", Book1.author);
      printf( "Book 1 subject : %s
    ", Book1.subject);
      printf( "Book 1 book_id : %d
    ", Book1.book_id);
    
      /* print Book2 info */
      printf( "Book 2 title : %s
    ", Book2.title);
      printf( "Book 2 author : %s
    ", Book2.author);
      printf( "Book 2 subject : %s
    ", Book2.subject);
      printf( "Book 2 book_id : %d
    ", Book2.book_id);
    
      return 0;
    }