c语言编程笔录

首页 >   > 笔记大全

笔记大全

c语言struct用法详解

更新时间:2023-09-29

关于C语言struct用法的介绍

在C语言中,struct是一种可以定义自己的数据类型的方法。结构体是C语言中的一个重要的数据结构,它可以用来表示一组相关的数据,其定义的语法如下:

struct structure_name{  
    member_type1 member_name1;  
    member_type2 member_name2;  
    …  
    member_typeN member_nameN;  
} ;

其中,结构名可以自己定义,也可以省略;成员要声明数据类型并分号结束。定义结构体类型后,可以像使用基本数据类型一样使用结构体类型。

结构体的定义和使用

以下代码展示了如何定义一个简单的结构体类型:

#include 
#include 
 
struct Book {
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
};
 
int main( ) {
   struct Book book1;        
   struct Book book2;        
 
   strcpy( book1.title, "C Programming");
   strcpy( book1.author, "Nuha Ali"); 
   strcpy( book1.subject, "C Programming Tutorial");
   book1.book_id = 6495407;
 
   strcpy( book2.title, "Telecom Billing");
   strcpy( book2.author, "Zara Ali");
   strcpy( book2.subject, "Telecom Billing Tutorial");
   book2.book_id = 6495700;
 
   printf( "Book 1 title : %s\n", book1.title);
   printf( "Book 1 author : %s\n", book1.author);
   printf( "Book 1 subject : %s\n", book1.subject);
   printf( "Book 1 book_id : %d\n", book1.book_id);
 
   printf( "Book 2 title : %s\n", book2.title);
   printf( "Book 2 author : %s\n", book2.author);
   printf( "Book 2 subject : %s\n", book2.subject);
   printf( "Book 2 book_id : %d\n", book2.book_id);
 
   return 0;
}

以上代码中使用了struct关键字定义了一个名为Book的结构体类型,包含title、author、subject和book_id四个成员。此后,程序中就可以像使用其他数据类型一样定义结构体类型的变量(book1和book2),并对其成员进行赋值和读取操作。

结构体指针的使用

结构体变量可以通过地址访问其成员。通过使用结构体指针,可以将地址保存到一个与结构体类型匹配的指针中。

#include 
#include 
 
struct Book {
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
};
 
int main( ) {

   struct Book book1;        

   strcpy( book1.title, "C Programming");
   strcpy( book1.author, "Nuha Ali"); 
   strcpy( book1.subject, "C Programming Tutorial");
   book1.book_id = 6495407;

   struct Book *book_pointer;
   book_pointer = &book1;

   printf( "Book 1 title : %s\n", book_pointer->title);
   printf( "Book 1 author : %s\n", book_pointer->author);
   printf( "Book 1 subject : %s\n", book_pointer->subject);
   printf( "Book 1 book_id : %d\n", book_pointer->book_id);

   return 0;
}

以上代码定义了一个指向结构体类型的指针,并将结构体变量book1的地址赋值给指针。可以通过“->”符号访问book_pointer所指向的结构体变量的成员。指针也可以用在函数参数中,以便可以在函数内部修改结构体变量。

结构体数组的使用

结构体也可以放在数组中。使用数组中的结构体,可以访问数组中的个别结构体变量。以下是结构体数组的定义示例:

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

数组中结构体的初始化方式如下:

struct Books Book1 = {"C Programming", "Nuha Ali", "C Programming Tutorial", 6495407};
struct Books Book2 = {"Telecom Billing", "Zara Ali", "Telecom Billing Tutorial", 6495700};

book[0] = Book1;
book[1] = Book2;

可以使用循环语句遍历结构体数组,对其中的每个元素进行访问和操作。

这就是关于C语言struct用法的介绍,希望对初学者有所帮助。