栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【数据结构(郝斌)】02预备知识-结构体

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【数据结构(郝斌)】02预备知识-结构体

结构体
  • 一、为什么会出现结构体
  • 二、结构体定义
  • 三、使用1---普通结构体变量
    • 1、定义结构体变量
    • 2、创建结构体变量
    • 3、访问结构体成员
  • 四、使用2---指针结构体变量
    • 1、创建结构体变量
    • 2、赋值
    • 3、访问
  • 五、注意事项
  • 六、通过函数修改结构体变量的值

一、为什么会出现结构体

为了表示一些复杂的数据,而普通的基本类型变量无法满足要求。

例如描述一个班级的学生信息(学号、姓名、年级、性别。。。),单纯的基本数据类型变量很容易将张三的姓名匹配到李四的学号,不易区分。故使用结构体可满足。

二、结构体定义

类里面有属性和方法,结构体里只有属性。
用户根据实际需要自己定义的复合数据类型

三、使用1—普通结构体变量 1、定义结构体变量
//结构体
struct Student {
	int sid;
	char name[200];
	int age;
};
2、创建结构体变量

数据类型(struct) 结构体名 变量名={赋值}

	//创建结构体变量:数据类型 结构体名 变量名={赋值}
	struct Student st ={1001,"aa",21};

3、访问结构体成员

结构体变量名.成员名

	//访问结构体成员:结构体变量名.成员名
	printf("%d	%s	%dn",st.sid,st.name,st.age);

完整代码:

//结构体
struct Student {
	int sid;
	char name[200];
	int age;
};
int main (void)
{
	//定义结构体变量:数据类型 结构体名 变量名={赋值}
	struct Student st ={1001,"aa",21};
	//访问结构体成员:结构体变量名.成员名
	printf("%d	%s	%dn",st.sid,st.name,st.age);
	return 0;
}

四、使用2—指针结构体变量 1、创建结构体变量
//指针结构体变量
	struct Student *pst;
2、赋值
	//赋值:pst指向st
	pst=&st;
3、访问

结构体指针变量名->结构体成员名

	//访问:pst->sid==>(*pst).sid==>st.sid
	printf("sid=%dn",pst->sid);
	printf("sid=%dn",(*pst).sid);
	printf("sid=%dn",st.sid);
//结构体
struct Student {
	int sid;
	char name[200];
	int age;
};
int main (void)
{
	//定义结构体变量:数据类型 结构体名 变量名={赋值}
	struct Student st ={1001,"aa",21};
	//访问结构体成员:结构体变量名.成员名
	//printf("%d	%s	%dn",st.sid,st.name,st.age);
	//指针结构体变量
	struct Student *pst;
	//赋值:pst指向st
	pst=&st;
	//访问:pst->sid==>(*pst).sid==>st.sid
	printf("sid=%dn",pst->sid);
	printf("sid=%dn",(*pst).sid);
	printf("sid=%dn",st.sid);	
	return 0;
}

五、注意事项
  • 结构体变量不能加减乘除,但可以相互赋值(st1=st2)
六、通过函数修改结构体变量的值

使用普通变量当参数时,占内存、耗时间,
参数为地址,不占用内存。

//结构体
struct Student {
	int sid;
	char name[200];
	int age;
};
void fpst(struct Student *pst)
{
	(*pst).age=22;
	pst->sid=1002;
	strcpy(pst->name,"xiaowang");
	
}
int main (void)
{
	//定义结构体变量:数据类型 结构体名 变量名={赋值}
	struct Student st ={1001,"aa",21};
	//传参变量地址
	fpst(&st);
	//访问结构体成员:结构体变量名.成员名
	printf("%d	%s	%dn",st.sid,st.name,st.age);	
	return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1014880.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号