struct用法

这篇具有很好参考价值的文章主要介绍了struct用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

struct定义:C语言允许用户自己建立有不同类型的数据组成的组合类型的数据结构,它被称为结构体。

例如:一个学生{性别,年龄,学号,姓名},花括号里面的称为结构体的子项,也称为结构体成员

struct student
	{
		char name[20];					//姓名为字符数组
		int age;						 //年龄为整形
		char sex[2];					//性别为字符
		int num[10];					//学号为整型
	};									//分号为结构体的结束标志

上述程序中struct为关键字不可省略,经过上面的指定struct student,就在本程序中是一个可以使用的合法类型名,它包括姓名,年龄,性别,学号。 

定义结构体变量:先声明结构体类型,在定义该类型的变量

Struct Student-->结构体类型

student1,student2-->结构体变量

在定义结构体变量后,系统会为之分配内存单元。根据结构体类型中包含的成员情况分布。

例如上面有(20+4+2+40)=66;

struct sutdent
	{
		char name[20];				//姓名为字符数组
		int age;					//年龄为整形
		char sex;					//性别为字符
		int num;					//学号为整型
	}student1.student2;				//结构体变量student1,student2

struct 结构体名

{

成员列表;

}变量列表;

注意:

1.结构体类型与结构体变量是不同的概念。只能对变量赋值,取存或运算,而不能对结构体类型赋值等;在编译时,对结构体类型不分配内存,只对结构体变量赋值。

2.结构体类型中的成员可以与程序中的变量名相同,但是二者代表的对象不同。

3.结构体整变量中的成员,可以单独使用;

结构变量的初始化和引用

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	struct sutdent
	{
		char name[20];					//姓名为字符数组
		int age;						 //年龄为整形
		char sex;					     //性别为字符
		int num;					    //学号为整型
	}student1 = { "王小乔",18,'m',2021032700 };				//结构体变量student1
	printf("name:%s\nage:%d\nsex:%c\nnum:%d", student1.name, student1.age, student1.sex, student1.num);
	return 0;

运行结果:

name:王小乔
age:18
sex:m
num:2021032700文章来源地址https://www.toymoban.com/news/detail-611239.html

结构体变量引用方式

结构体变量名.成员名

scanf函数输入结构体体变量

用scanf输入结构体变量时,必须分别输入他们的成员值,注意,scanf函数中在成员Student1中,student.name没有&,这是应为数组名本身就代表地址。

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	struct sutdent
	{
		char name[40];					//姓名为字符数组
		int age;						 //年龄为整形
		char sex;					     //性别为字符
		int num;					    //学号为整型
	}student1; //= { "王小乔",18,'m',2021032700 };				//结构体变量student1,student2					//分号为结构体的结束标志
	scanf("%s %d %c %d", student1.name, &student1.age, &student1.sex, &student1.num);
	printf("name:%s\nage:%d\nsex:%c\nnum:%d", student1.name, student1.age, student1.sex, student1.num);
	return 0;
}

运行结果:

name:王小乔
age:18
sex:m
num:2021032700

到了这里,关于struct用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 数据结构上机练习——单链表的基本操作、头文件、类定义、main函数、多种链表算法的实现,含注释

    数据结构上机练习——单链表的基本操作、头文件、类定义、main函数、多种链表算法的实现,含注释

      头文件和源文件分开有很多好处:可以提高编译速度、提高代码的可维护性、提高代码的可重用性和可扩展性,同时也可以使代码结构更清晰,方便代码的管理和维护。 LinkList.h test.cpp                  (下面所有函数都默认在类中实现)   我们以

    2024年02月07日
    浏览(49)
  • 数据结构和算法学习记录——初识二叉树(定义、五种基本形态、几种特殊的二叉树、二叉树的重要性质、初识基本操作函数)

    数据结构和算法学习记录——初识二叉树(定义、五种基本形态、几种特殊的二叉树、二叉树的重要性质、初识基本操作函数)

    目录 二叉树的定义 二叉树具体的五种基本形态 1.空树 2.只有一个节点 3.有左子树,但右子树为空 4.有右子树,但左子树为空  5.左右两子树都不为空 特殊二叉树 斜二叉树 满二叉树  完全二叉树 二叉树的几个重要性质 初识二叉树的几个操作函数  二叉树T: 一个有穷的节点

    2024年02月03日
    浏览(15)
  • Java 中数据结构HashSet的用法

    Java 中数据结构HashSet的用法

    HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。 HashSet 允许有 null 值。 HashSet 是无序的,即不会记录插入的顺序。 HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。 您必须在多线程访问时显式同步对 HashSet 的并发访问。 Ha

    2024年02月11日
    浏览(12)
  • Java 中数据结构LinkedList的用法

    Java 中数据结构LinkedList的用法

    链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址。 链表可分为单向链表和双向链表。 一个单向链表包含两个值: 当前节点的值和一个指向下一个节点的链接。 一个双向链表有三个整

    2024年02月11日
    浏览(11)
  • Java 中数据结构ArrayList的用法

    ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。 ArrayList 继承了 AbstractList ,并实现了 List 接口。 add() 将元素插入到指定位置的 arraylist 中 addAll() 添加集合中的所有元素到 arraylist 中 clear() 删除 arraylist 中的所

    2024年02月10日
    浏览(13)
  • 数据结构map的基本知识与用法

    映射类似于函数的对应关系,每个 x 对应一个 y ,而 map 是每个键对应一个值。会python的朋友学习后就会知道这和python的字典非常类似。 比如说:学习 对应 看书,学习 是键,看书 是值。 学习-看书 玩耍 对应 打游戏,玩耍 是键,打游戏 是值。 玩耍-打游戏          Cp

    2024年02月20日
    浏览(16)
  • 【c语言指针详解】复杂数据结构的指针用法

    【c语言指针详解】复杂数据结构的指针用法

    目录 一、动态内存分配 1.1 使用malloc和free函数进行内存的动态分配和释放 1.2 内存泄漏和野指针的概念和解决方法 二、复杂数据结构的指针用法 2.1 结构体指针和成员访问操作符 2.2 指针数组和指向指针的指针 2.2.1 指针数组 2.2.2 指向指针的指针 2.3 动态内存分配与结构体

    2024年02月04日
    浏览(11)
  • 结构体和数据结构--向函数传递结构体

    结构体和数据结构--向函数传递结构体

    将结构体传给函数的方式有以下三种: 目录 一、用结构体的单个成员作为函数参数,向函数传递结构体的单个成员 二、用结构体变量作函数实参,向函数传递结构体得完整结构 三、用结构体指针或结构体数组作函数参数,向函数传递结构体的地址。         用单个结构体

    2024年02月04日
    浏览(21)
  • 算法 数据结构分类 数据结构类型介绍 数据结构线性非线性结构 算法合集 (一)

     数据结构分为:                            a.线性结构                            b.非线性结构  a.线性结构:                       数据与结构存在一对一的线性关系; a . 线性结构 存储 分为:                                   顺序存储

    2024年02月10日
    浏览(12)
  • 【算法与数据结构】--算法应用--算法和数据结构的案例研究

    一、项目管理中的算法应用 在项目管理中,算法和数据结构的应用涉及项目进度、资源分配、风险管理等方面。以下是一些案例研究,展示了算法在项目管理中的实际应用: 项目进度管理 : 甘特图算法 :甘特图是一种项目进度管理工具,它使用甘特图算法来展示项目任务

    2024年02月08日
    浏览(16)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包