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