结构体

Posted sird-b

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结构体相关的知识,希望对你有一定的参考价值。

定义结构:
struct tag { //tag是结构体标签
//member-list   //标准的变量定义
member-list
member-list
member-list
...
}variable-list    //variable-list结构变量 ,定义在结构的末尾,放在最后一个分号之前,可以有多个.

1.直接访问结构成员

2.结构作为函数参数

3.指向结构的指针

源码:

#include<stdio.h>
#include<string.h>

struct Books
{
char title[50];
char author[50] ;
char subject[100];
int book_id;
} ;
//函数声明
void printBook( struct Books *book ); //形参中定义Books类型的指针变量book

int main()
{
struct Books Book1;//声明Book1,类型为Books
struct Books Book2;//声明Book2,类型为Books

strcpy(Book1.title, "C programming"); //copy字符串C programming到Book1.title
printf("Book 1 title :%s ", Book1.title); //这个是直接访问结构体
//printBook(Book1);//调用函数 ,这个是结构作为函数参数
printBook( &Book1 );//给形参地址(通过传递Book1的地址来输出Book1信息给指针


return 0;
}

//void printBook( struct Books book) //结构作为函数参数
void printBook(struct Books *book) //形参定义指针Books类型的book指针
{
//printf("Book title: %s ",book.title) ; //结构作为函数参数 
printf("Book title:%s ", book->title); //并且使用结构指针访问结构成员时,需使用"->"运算符 
}

 ps):用结构变量访问结构成员是需要成员访问运算符(.)Such as:结构变量book.title(结构变量book访问结构成员title);

    并且使用结构指针访问结构成员时,需使用"->"运算符 

 

以上是关于结构体的主要内容,如果未能解决你的问题,请参考以下文章

C语言-结构体

C 语言结构体 ( 结构体类型定义 | 结构体类型别名 | 声明结构体变量的三种方法 | 栈内存中声明结构体变量 | 定义隐式结构体时声明变量 | 定义普通结构体时声明变量 )

结构体定义是啥?

结构体指针

C++结构体中定义函数(C++结构体与C语言结构体区别)(C++结构体与C++类的区别)(结构体函数)

C++结构体中定义函数(C++结构体与C语言结构体区别)(C++结构体与C++类的区别)(结构体函数)