为什么需要结构体,看代码
# include <stdio.h> struct Student //定义一个学生类型,里面有age, score, sex, 然后可以定义这个类型的变量 { int age; float score; char sex; } int main(void) { struct Student st = {80, 66.6, 'F'}; /* int age; float score; char sex; int age2; float score2; char sex2; */ return 0; }
定义结构体
# include <stdio.h> //第一种方式,最常用的是第一种,第二种第三种都不好,最好不要使用 struct Student { int age; float score; char sex; }; //第二种方式 struct Student2 { int age; float score; char sex } st2; //第三种方式 struct { int age; float score; char sex } st3; int main(void) { struct Student st = {80, 66.6, 'F'}; return 0; }
结构体的初始化和初值:
# include <stdio.h> struct Student { int age; float score; char sex; }; int main(void) { struct Student st = {80, 66.6, 'F'}; //初始化 定义的同时赋初值 struct Student st2; //这样没有赋值,因为已经定义好了,所以后面赋值只能单个赋值 st2.age = 10; st2.score = 88; st2.sex = 'F'; printf("%d %f %c\n", st.age, st.score, st.sex); printf("%d %f %c\n", st2.age, st2.score, st2.sex); return 0; }
从结构体中取值示例:
# include <stdio.h> struct Student { int age; float score; char sex; }; int main(void) { struct Student st = {80, 66.6F, 'F'}; //初始化 定义的同时赋初值 struct Student * pst = &st; st.score = 66.6f; //第一种方法 pst->age = 88; //第二种方式 pst->age 在计算机内部会被转换成 (*pst).age, 没有为什么, //这就是->的含义,这是一种硬性规定 // 所以 pst->age 等价于 (*pst).age 也等价于 st.age // 我们之所以知道 pst->age 等价于 st.age, 是因为pst->age 是被转化成了 // (*pst).age来执行 printf("%d %f\n", st.age, pst->score); return 0; }
结构体复习练习:
# include <stdio.h> struct Student { int age; char sex; char name[100]; }; //分号不能省 int main(void) { struct Student st = {20, 'F', "小娟"}; printf("%d %c %s\n", st.age, st.sex, st.name); struct Student *pst = &st; printf("%d %c %s\n", pst->age, pst->sex, pst->name); // ps->age 转化成 (*pst).age 也等价于st.age return 0; }
通过函数对结构体的输入输出示例:
输出函数采用了发送内容的形式
/* 2013年3月15日20:14:31 功能:通过函数对结构体的输入输出 */ # include <stdio.h> # include <string.h> struct Student { int age; char sex; char name[100]; }; //分号不能省 //结构的参数传递 void InputStudent(struct Student *); void OutputStudent(struct Student); int main(void) { struct Student st; //15行 InputStudent(&st); //对结构体变量输入 // printf("%d %c %s\n", st.age, st.sex, st.name); OutputStudent(st); //对结构体变量输出 return 0; } void OutputStudent(struct Student ss) { printf("%d %c %s\n", ss.age, ss.sex, ss.name); } void InputStudent(struct Student * pstu) //pstu 只占4个字节 { (*pstu).age = 10; strcpy( pstu->name, "张三"); pstu->sex = 'F'; } /* //本函数无法修改主函数 15行st的值,所以本函数是错误的 void InputStudent(struct Student stu) { stu.age = 10; strcpy(stu.name, "张三"); //不能写成 stu.name = "张三"; stu.sex = 'F'; } */
输出程序调优,选择传地址的方式:
/* 2013年3月15日20:14:31 示例: 发送地址还是发送内容 发送内容传输的内容太多,需要复制很多的内容,比较消耗时间和资源,影响效率,发送地址就比较小 指针的优点之一: 快速的传递数据, 耗用内存小 执行速度快 */ # include <stdio.h> # include <string.h> struct Student { int age; char sex; char name[100]; }; void InputStudent(struct Student *); void OutputStudent(struct Student *); int main(void) { struct Student st; //15行 //printf("%d\n", sizeof(st)); InputStudent(&st); //对结构体变量输入 必须发送st的地址 OutputStudent(&st); //对结构体变量输出 可以发送st的地址,也可以发送st的内容,但为了减少内在的耗费,也为了提高执行速度,推荐发送地址 return 0; } void OutputStudent(struct Student * ss) { printf("%d %c %s\n", ss->age, ss->sex, ss->name); } void InputStudent(struct Student * pstu) //pstu 只占4个字节 { (*pstu).age = 10; strcpy( pstu->name, "张三"); pstu->sex = 'F'; }
相关推荐
【C语言学习——结构体】 在C语言中,结构体是一种复合数据类型,它允许我们将不同类型的数据组合到一个单一的实体中,便于管理和操作。结构体的概念是C语言中非常重要的一个部分,它解决了在单一变量中存储多个...
在C语言中,结构体(Struct)是一种复合...通过学习和理解结构体,你可以更好地理解和编写处理复杂数据的C语言程序。结构体是C语言中不可或缺的一部分,尤其在构建高级数据结构(如链表、树、图等)时显得尤为重要。
在C语言中,结构体(struct)是一种复合数据类型,它允许我们将多个不同类型的变量组合成一个单一的实体。在上述课件中,讨论了如何使用...学习和熟练掌握C语言中的结构体,对理解程序设计和数据结构有着重要的作用。
1.软件:Dev-C++ 2.测试页面及结构体信息见我专栏《资源》下的《C语言系统资源测试》 3.代码一共298行 4.代码排版有序,易于新手下载学习 5.大家下载后有什么问题,欢迎私聊解决
内容概要:本文详细介绍了C语言中的结构体,从基本概念到高级应用进行了全面讲解。...其他说明:文章通过大量实际案例和应用场景,深入浅出地讲解了结构体的概念和技术细节,是C语言学习的重要参考资料。
在C语言中,结构体(struct)是一种复合数据类型,它允许我们将不同类型的数据组合到一个单一的实体中,便于管理和操作。这对于表示复杂的数据结构,如记录或对象,非常有用。下面将详细介绍如何在C语言中使用结构体...
### 学习C语言中的结构体 #### 一、理解基本概念 - **定义**: 结构体(Struct)是C语言中的一个复合数据类型,它能够将不同类型的数据整合到一个单元之中,形成一个新的数据结构。这有助于管理和组织复杂的程序...
总的来说,这个PPT学习教案全面介绍了C语言中的结构体编程,从基本概念到高级应用,旨在帮助学习者理解和掌握如何在C程序中有效地处理复杂的数据结构。通过学习这部分内容,开发者可以更好地设计和实现数据驱动的...
内容概要:本文详细介绍了C语言中的结构体概念及其用法,涵盖结构体的定义、变量声明和初始化、成员访问、结构体数组以及结构体指针的相关知识点。具体示例展示结构体作为复合数据类型,能够封装多种数据类型的优点...
通过本篇文章的学习,我们了解了结构体在C语言中的重要性和使用方法。结构体不仅能够帮助我们有效地组织和管理数据,还能让代码更具可读性和可维护性。掌握了结构体的概念和技巧后,我们可以在编写C语言程序时更加...
在C语言中,结构体(Struct)是一种复合数据类型,它允许我们将多个不同类型的变量组合成一个单一的实体,方便地处理复杂的数据结构。本篇PPT主要讲解了C语言中的结构体程序设计,包括以下几个核心知识点: 1. **...
在本实验中,我们将深入探讨C语言中的结构体这一...在这个实验中,你将学习到如何定义和操作结构体,处理文件输入输出,以及如何在结构体数组中查找特定条件的数据。这些技能对于进一步理解和编写复杂的C程序至关重要。
本压缩包“C语言指针和结构体编程实例”显然包含了若干实例,旨在帮助学习者深入理解这两部分的知识。 首先,让我们了解一下指针。在C语言中,指针是一种特殊的变量,它存储了内存地址,可以用来间接访问其他变量。...
2.测试页面及结构体信息见我专栏《资源》下的《C语言系统资源测试》 3.代码一64行,功能有输入、排序、浏览 4.代码排版有序,注释多,易于新手下载学习 5.大家下载后有什么问题,欢迎私聊解决 6.采用结构体数组...
在C语言中,数据结构的实现往往依赖于结构体(struct)这一特性。严蔚敏教授的《数据结构C语言》教程深入浅出地介绍了结构体及其相关知识。 结构体是一种自定义的数据类型,它允许我们将不同类型的数据组合成一个...
3.基于结构体数组实现, 4.里面涉及控制台、随机函数偏僻知识点,对学习很有帮助 5.可以自己设置猜的位数、次数 6.代码有注释,易于理解 7.我还有其他资源,自己写的,欢迎私聊询问 8.若代码有什么问题,欢迎私聊...
C语言中的结构体(Struct)和共用体(Union)是两种重要的复合数据类型,它们允许程序员将多个不同数据类型的变量组合成一个单一的实体。...通过学习和实践,你可以创建更灵活、更高效的C语言程序。
无论是对于学习C语言的学生还是寻求个人财务管理解决方案的用户,这款程序都具有很高的参考价值。通过深入理解其设计原理和实现机制,我们可以更好地掌握结构体在实际问题解决中的应用,同时提升我们的编程技能。
在C语言编程中,循环、...学习并熟练掌握这些基础知识,对于理解和编写高效的C语言程序至关重要。在提供的压缩包文件中,可能包含了一系列展示这些概念实际运用的代码示例,通过实践这些例子,可以加深对C语言的理解。
在C语言中,结构体(struct)是...学习和理解结构体对于深入理解和编写复杂的C程序至关重要,尤其是在处理数据记录、文件I/O和系统编程等领域。在实际应用中,结构体与指针的结合使用可以实现更灵活的数据操作和管理。