网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 软件工程 > 其他技术区 > 算法与数据结构 >

准备工作之结构体[基于郝斌课程]

时间:2025-09-10 00:16

人气:

作者:admin

标签:

导读:为什么会出现结构体 为了表示一些复杂的数据,而普通的基本类型变量无法满足要求 什么叫结构体 结构体是用户根据实际需要自己定义的复合数据类型 如何使用结构体 普通结构体变量...
为什么会出现结构体   为了表示一些复杂的数据,而普通的基本类型变量无法满足要求   什么叫结构体   结构体是用户根据实际需要自己定义的复合数据类型   如何使用结构体 普通结构体变量.成员变量

/*
@file      main.c
@brief     数据结构预备知识之结构体学习
@author    EricsT (EricsT@163.com)
@version   v1.0.0
@date      2025-09-09
@history   2025-09-09 EricsT - 新建文件
*/

#include <stdio.h>
#include <string.h>

struct Student//定义一个数据类型
{
	int sid;//结构体成员
	char name[200];
	int age;
};//该处分号不能省略

int main(void)
{
	Student st = { 1000, "zhangsan", 20 };//结构体变量
	printf("%d %s %d\n", st.sid, st.name, st.age);

	st.sid = 99;
	strcpy(st.name, "lisi");//st.name = "lisi"
	st.age = 22;
	printf("%d %s %d\n", st.sid, st.name, st.age);

	return 0;
}
结构体指针变量->成员变量

/*
@file      main.c
@brief     数据结构预备知识之结构体指针
@author    EricsT (EricsT@163.com)
@version   v1.0.0
@date      2025-09-09
@history   2025-09-09 EricsT - 新建文件
*/

#include <stdio.h>

struct Student//定义一个数据类型
{
	int sid;//结构体成员
	char name[200];
	int age;
};//该处分号不能省略

int main(void)
{
	Student st = { 1000, "zhangsan", 20 };//结构体变量

	Student* pst;//结构体指针
	pst = &st;

	pst->sid = 99;//pst->sid等价于(*pst).sid等价于st.sid

	return 0;
}
pst->sid[表示pst所指向的结构体变量中的sid这个成员]   注意事项 结构体变量不能加减乘除,但是可以相互赋值 普通结构体变量和结构体指针变量作为函数传参的问题

/*
@file      main.c
@brief     数据结构预备知识之结构体与函数
@author    EricsT (EricsT@163.com)
@version   v1.0.0
@date      2025-09-09
@history   2025-09-09 EricsT - 新建文件
*/

#include <stdio.h>
#include <string.h>

struct Student//定义一个数据类型
{
	int sid;//结构体成员
	char name[200];
	int age;
};//该处分号不能省略


void f(Student* pst)
{
	(*pst).sid = 99;

	strcpy(pst->name, "zhangsan");

	pst->age = 20;
}

//此时传数据,会把st整体传进来,意味着需要传Student大小过去
//耗时耗内存
void g(Student st)
{
	printf("%d %s %d\n", st.age, st.name, st.sid);
}

//此时只传递了4个字节,但是可以访问整个结构体
void h(Student* pst)
{
	printf("%d %s %d\n", pst->age, pst->name, pst->sid);

}

int main()
{
	Student st;//此时已在内存中给其分配内存空间,由于未初始化,所以该块内存中的值是随机值

	f(&st);
	g(st);
	h(&st);

	return 0;
}

 

本文来自博客园,作者:EricsT,转载请注明原文链接:https://www.cnblogs.com/EricsT/p/19082822

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信