#pragma once
#include <stdio.h>
/*C 数组允许定义可存储相同类型数据项的变量,结构是 C 编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的
数据项。
结构体中的数据成员可以是基本数据类型(如 int、float、char 等),也可以是其他结构体类型、指针类型等。
结构体定义由关键字 struct 和结构体名组成,结构体名可以根据需要自行定义。
*/
//
struct Books
{
char title[50];
char author[50];
char subject[100];
int book_id;
}book = {"c 语言","RUNOOB","编程语言",123456};
struct Person {
char name[20];
int age;
float height;
};
void printBook(struct Books book);
void print_Book(struct Books* book);
void test_point()
{
//结构体变量的初始化
printf("title : %s\nauthor: %s\nsubject: %s\nbook_id: %d\n", book.title, book.author, book.subject, book.book_id);
//访问结构体成员了,使用成员运算符(.)
struct Books Book1; /* 声明 Book1,类型为 Books */
struct Books Book2; /* 声明 Book2,类型为 Books */
//Book1
strcpy_s(Book1.title, "C Programing");
strcpy_s(Book1.author, "Nuha Ali");
strcpy_s(Book1.subject, "C Programing Tutorial");
Book1.book_id = 6495407;
strcpy_s(Book2.title, "Telecom Billing");
strcpy_s(Book2.author, "Zara Ali");
strcpy_s(Book2.subject, "Telecom Billing Tutorial");
Book2.book_id = 6495700;
/* 输出 Book1 信息 */
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);
/* 输出 Book2 信息 */
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);
//将结构体作为函数参数
printBook(Book1);//结构体对象访问结构的成员
printBook(Book2);
//指向结构的指针 指针访问结构的成员
print_Book(&Book1);
print_Book(&Book2);
//计算结构体的大小
struct Person person;
//%zu 是一个格式说明符,用于表示无符号整数类型(unsigned int)的大小。在 C 语言中,%zu 通常用于 sizeof() 函数的
//输出结果,以获取变量所占用的字节数。
printf("结构体 Person 大小为: %zu 字节\n", sizeof(person));
printf(" age 大小为: %zu 字节\n", sizeof(person.age));
printf(" height 大小为: %zu 字节\n", sizeof(person.height));
printf(" age 大小为: %zu 字节\n", sizeof(person.name));
}
void printBook(struct Books book)
{
/* 输出 Book1 信息 */
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);
}
void print_Book(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);
}
//运行可直接在main函数包含改文件头文件,调用test_point()即可
c语言结构体
最新推荐文章于 2024-08-28 19:43:54 发布