C结构体
定义结构体的几种方式:
第一种:定义结构体,并声明两个结构体变量。不能通过struct structName xxx;定义结构体变量。
struct
{
char title[50];
char author[50];
char subject[100];
int book_id;
} book1,book2;
第二种:定义结构体,并声明两个结构体变量。能通过struct structName xxx;定义结构体变量。
struct Book
{
char title[50];
char author[50];
char subject[100];
int book_id;
} ;
//或
struct Book { char title[50]; char author[50]; char subject[100]; int book_id; }book1,book2;
void main(){
struct Book book1;
struct Book book2;
}
第三种:typedef struct 定义结构体并定义结构体别名
typedef struct BookStruct
{
char title[50];
char author[50];
char subject[100];
int book_id;
}Book;
typedef struct定义结构体,同时也定义结构体的别名:Book book;(如果没有typedef就必须用struct BookStruct book;来声明)
这里的Book实际上就是struct BookStruct的别名。Book==struct BookStruct
另外这里也可以不写BookStruct(于是也不能struct BookStruct book;了,必须是Book book;)
结构体数组成员赋值
#include "stdio.h"
#include "string.h"
typedef struct Books
{
char title[50];
char author[50];
char subject[100];
int book_id;
} Book;
int main()
{
Book book;
//book.title = "abcd"; //不能直接赋值
strcpy(book.title,"abcd");
printf("output:%s",book.title);
return 1;
}
->运算符用在指针上,获取成员变量的值
#include <stdio.h>
void main(){
struct stu {
char name;
int age ;
};
struct stu s ;
struct stu *ptr = &s ;
s.name = "zhangsan";
s.age = 25;
printf("姓名:%c,年龄:%d\n",s.name,s.age);
printf("姓名:%c,年龄:%d\n",ptr->name,ptr->age);
}
感谢您的阅读,您的支持是我写博客动力。