结构体的声明
struct Books {
char title[50];
char author[50];
char subject[100];
int book_id;
} book;
访问结构体成员
示例
strcpy( Book1.title, "C Programming");
Book1.book_id = 6495407;
#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\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);
/* print Book2 info */
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;
}
结构体作为函数参数
void printBook( struct Books book ) {
printf( "Book title : %s\n", book.title);
printf( "Book author : %s\n", book.author);
printf( "Book subject : %s\n", book.subject);
printf( "Book book_id : %d\n", book.book_id);
}
结构体指针
定义结构体指针
struct Books *struct_pointer;
存放结构体变量的地址在结构体变量指针中,使用&
操作符取一个变量的地址
struct_pointer = &Book1;
使用结构体指针去访问成员变量时,访问的操作符我们由原来的.
变为->
但是给结构体变量中的变量赋值时,还是要使用 . (一定要注意,不然会报错)
printf( "Book title : %s\n", book->title);
strcpy( Book1.title, "C Programming");
Book1.book_id = 6495407;