1.结构体
用于描述复杂对象,是我们自己创造出来的一种类型。
举例:书
描述书需要:书名+作者+出版社+定价+书号。。。
1)举例代码
struct Book
{
char name[20];
short price;
};
int main()
{
struct Book b1 = { "c语言", 55 }; //利用结构体类型-创建一个该类型的结构体变量
printf("书名:%s\n", b1.name);
printf("价格:%d\n", b1.price);
return 0;
} //执行结果 书名:c语言 价格:55
2)修改价格
struct Book
{
char name[20];
short price;
};
int main()
{
struct Book b1 = { "c语言", 55 };
printf("书名:%s\n", b1.name);
printf("价格:%d\n", b1.price);
b1.price = 15;
printf("打折后价格:%d\n", b1.price);
return 0;
} //执行结果:书名:c语言 价格:55 打折后价格:15
2)修改书名
#include <string.h>
struct Book
{
char name[20];
short price;
};
int main()
{
struct Book b1 = { "c语言", 55 };
strcpy(b1.name, "c++");// strcpy - string copy -字符串拷贝-库函数-头文件string.h
printf("%s\n", b1.name);
return 0;
} //执行结果 c++
因为书名是数组名,不能直接更改
3)指针变量
struct Book
{
char name[20];
short price;
};
int main()
{
struct Book b1 = { "c语言", 55 };
struct Book* pb = &b1;
printf("%s\n", (*pb).name);
printf("%d\n", (*pb).price);
return 0;
} //执行结果 c语言 55
与
int main()
{
struct Book b1 = { "c语言", 55 };
struct Book* pb = &b1;
printf("%s\n", pb->name);
printf("%d\n", pb->price);
return 0;
}
意义相同
注:. 结构体变量 . 成员
-> 结构体指针 -> 成员