所使用的编译器为VS2022

先尝试创建结构体和结构体变量,并且打印结构体中的成员

#include<stdio.h>

//创建一个结构体类型
struct Book
{
	char name[20];//书的价格
	short price;//书的名字
};

//利用结构体类型创建一个该类型的结构体变量
int main()
{
	struct Book b1 = {"C语言程序设计",55};//自定义书的名字和价格
  struct Book* pb = &b1;//创建指针变量pb保存结构体变量b1的地址
  //利用指针变量打印书名和价格(以下两种方法均可)
  printf("书名:%s\n价格:%d\n", (*pb).name,(*pb).price);//.  结构体变量.成员
  printf("书名:%s\n价格:%d\n", pb->name, pb->price);//->  结构体指针->成员
  return 0;
}

接着,尝试改变结构体变量中的成员,将“C语言程序设计”换成“C++”,需用到函数strcpy

#include<string.h>
int main()
{
	struct Book b1 = { "C语言程序设计",55 };
	strcpy(b1.name,"C++");//strcpy - string copy - 字符串拷贝-库函数-string.h
	//把C++拷贝到b1.name中
	printf("%s\n", b1.name);
	return 0;
}

注:不可以这样子改:

struct Book b1 = { "C语言程序设计",55 };
b1.name = "C++";

因为b1.name(数组)本质是地址。

改数字可以:

struct Book b1 = { "C语言程序设计",55 };
b1.price = 15;