结构体

例如要定义一个人需要复杂的各种变量结合在一起就需要结构体
是我们自己创造出来的类型

struct关键字

为结构体关键字即结构体中需要用到struct
用法:
struct Book
{
char name[20];
int price;
}; //;不可缺少
注意:
结构体中不能直接赋值
在主函数中使用
struct Book b1 = {"C语言程序设计", 55};
输出:
printf("书名:%s\n", b1.name);//C语言程序设计
printf("价格:%d\n", b1.price);//55
b1.name = "java"; //报错因为name为一个数组
同理正常的
char ch[] = "xzc";
ch[] = "abc";//也是报错数组只能初始化不可以再赋值
b1.price = 10; //可以改变因为price为一个变量
printf("价格:%d\n", b1.price);//10
要想改变结构体中的字符串数组需要用到strcpy()函数

strcpy函数

首先需要头文件#include <string.h>
用法:
strcpy(name, "c++");//将"c++"赋值给name
具体代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
int main(){
char ch[] = "xzc";
strcpy(ch, "abc");
printf("%s\n", ch);
return 0;
} //此时结果为abc
注意:
b1的指针类型与b1一致
struct Book p=&b1;
printf("%s\n", (
p).name);//必须加()不然会报错不能识别
printf("%d\n", (*p).price);
->:箭头操作符用法:
printf("%d\n", p->price);//输出为10//简化了上述写法