菜鸟[0]_结构、联合和typedef(C语言)

本文详细介绍了C语言中的结构体、联合和typedef的概念及使用方法。结构体可以存储不同类型的变量,而联合在同一时间只能存储一个成员,它们在内存分配上存在显著差异。typedef则用于为数据类型创建别名,简化代码。通过示例代码展示了如何声明、实例化和操作结构体和联合,以及typedef的应用。
摘要由CSDN通过智能技术生成

1、结构
结构是一个或多个变量的集合,该集合有一个单独的名称,便于操作。与数组不同,结构可以储存不同类型的变量。结构中的变量被称为结构的成员。在进行实例化之后我们就可以对其内部变量(成员)进行赋值操作。

#include<stdio.h>
int main()
{
	/*struct student
	{
		int number;  注释内部被称为结构的声明和定义,我们在这里声明里一个为student的 
		char *name;  结构,其中包括一个整型number来存储学生的学号name来存储学生的名字 。 
	}*/               
	struct student
	{
		int number;
		char *name;
	} student_1,student_2;
	
	/*
		student_1,student_2;       这两行都是对结构的实例化,实例 
		struct student student_3;  化之后我们可以对其进行操作 .
	*/
	struct student student_3; 
	student_1.number=20902134;
	student_1.name="曹家先";
	
	printf("%d %s",student_1.number,student_1.name);
	
	
	 
	student_3.number=20903124;
	student_3.name="李老二";
	
	printf("\n%d %s",student_3.number,student_3.name);
	return 0;
}

2、联合
联合与结构类似,它的声明方式与结构相同,联合和结构不同的是,同一时间内只能用一个联合成员。因为他的每一个成员都存储在相同的位置上,其分配内存大小可以容纳所需内存最大的成员。

#include<stdio.h>
int main() 
{
	union student
	{
		char *name;
		int number;
	}student;
	student.name="李老二";
	printf("%s",student.name);
	student.number=20903125;
	printf("%d",student.number);
	
	printf("\n%d",student.name);//studeng.name内的数据已经变成20903125 
	return 0; 
}

3、typedef
使用typedef关键字可以创建结构或联合类型的别名。

#include<stdio.h>
int main()
{
	typedef struct
	{
		int number;
		char *name;
	}student;
	student student_1;
	student_1.number=20134567;
	student_1.name="李老二";
	printf("%s %d",student_1.name,student_1.name);
	return 0;
 } 

总结:
结构和联合的区别,结构的成员可以同时存在很多个不同类型,每一个成员可以同时存在,并且互不影响。联合内部的成员可以是不同类型,但是同时只能存在一个,修改了一个其余的成员跟着一起改变,同时只能存在一个成员其余的成员均编程最近被修改的成员。typedef定义的结构和联合声明起来比较简单。
结构内部成员,分配的存储地址不同,联合内部的成员分配的存储地址相同,且分配地址大小为字节数最大的成员。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值