结构体基础

结构体的定义

结构体是一些值的集合,这些值称为成员变量。结构体的每个成员可以是不同类型的变量。

结构体声明
struct tag {
	member - list;//成员变量
}variable-list;//变量列表
定义结构体变量定义

这里用一种书举例子,成员变量有书名,价格,以及版本
book1,book2,book3都是结构体类型变量,book4 是局部变量,book1,book2,book3不能整体赋值(相当于已经创建好了结构体变量,所以下面就不能统一赋值了)
注意,结构体出来后只是变量类型,并没有申请内存空间,当其初始化后,会申请内存空间。

struct Book {
	char name[20];
	short int price;
	short int version;//全局变量
}book1,book2,book3;
int main() {
	struct Book book4 = {"mafan",20,20};//局部变量
	//book1 = { "mafan",20,20 };错误
	return 0;
}
重命名结构体类型

将Book的结构体类命名为Books

typedef struct Book {
	char name[20];
	short int price;
	short int version;
}Books;//结构体类型名
int main() {
	 Books book4;
	return 0;
}

注意Books是结构体类型名,而上面的book1,book2,bok3是结构体变量

结构体变量初始化

由于结构体的成员可以是标量,数组,指针甚至是别的结构体
这块我们使用结构体内部变量含有别的结构体举例
注意:Stu结构体里面如果含有Book结构体时,Book结构体要在Stu结构体之上创建,不然会系统报错

#include<stdio.h>

struct Book {
	char name[20];
	short int price;
	short int version;
};
struct Stu {
	char name[20];
	double height;
	char sex;
	struct Book book1;
	char* talk;
};
int main() {
	char arr[20] = "hello,teacher";
	struct Stu student = { "小明",1.8,'Y',{"悲惨人生",30,5},arr};
	printf("学生的名字:%s\n身高:%f\n性别:%c\n学生在说:%s\n",
		student.name, student.height, student.sex,student.talk);		
	printf("书的名字:%s\n书的价格:%d\n书的版本:%d\n",
		student.book1.name, student.book1.price, student.book1.version);
	
	//使用指针访问变量
	struct Stu* pc = &student;
	printf("学生的名字:%s\n身高:%f\n性别:%c\n学生在说:%s\n",
		   (*pc).name, (*pc).height, (*pc).sex, (*pc).talk);
	
	printf("学生的名字:%s\n身高:%f\n性别:%c\n学生在说:%s\n",
		    pc->name, pc->height, pc->sex, pc->talk);
	// 修改数组人名
	strcpy(student.name, "李华");//strcpy--string copy --字符串拷贝 <string.h>
	printf("学生名字:%s", student.name);
	getchar();
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值