C语言入门篇--初识结构体

 更新时间:2021年08月26日 09:37:28   作者:yycure  
本篇文章是基础篇,适合c语言刚入门的朋友,本文对c语言的结构体做了简单的分析,帮助大家快速入门c语言的世界,更好的理解c语言

1.为什么要有结构体

(1)之前int、char等类型描述的结构体非常单一,只可描述一种类型。
(2)数组也是描述同一类型的集合,只可描述一种类型。
(3)而结构体使得C语言可以描述复杂类型,比如学生类型( 包含学生的名字、年龄、性别、电话号等信息)。

结构体和数组的区别:
结构体:用来描述相同/不同数据元素类型的集合。
数组:用来描述具有相同数据元素类型的集合。

2.结构体的定义

2.1结构体类型的定义

格式:

struct Stu//结构体类型名字为struct Stu(struct Stu类似于int)
{
    //结构体内容
	char Name[20];
	int Age;
	char Sex[5];
	char Tel[12];
};//记着加;

注意:
(1)结构体类型的定义是在main函数外部。
(2)此处指定义了一个结构体类型,还未定义对应结构类型的变量,所以还未在内存中开辟空间。

2.2定义结构体普通变量及访问

struct Stu Tom = { “Tom”, 13, “男”, “11122546698” };
//定义结构体普通变量并初始化,变量名为Tom,用变量名访问结构体。

#include <stdio.h>
struct Stu
{
	char Name[20];//名字
	int Age; //年龄
	char Sex[5];//性别
	char Tel[12];//电话号
};
int main()
{
	struct Stu Tom = { "Tom", 13, "男", "11122546698" };
	printf("%s,%d,%s,%s\n", Tom.Name, Tom.Age, Tom.Sex, Tom.Tel);//用变量名和结构成员运算符(.)访问结构体。	
	return 0;
}

在这里插入图片描述

2.3定义结构体指针变量及访问

struct Stu *s = &Tom;
//定义结构体指针变量,s指向Tom,有如下两种访问方式。

#include <stdio.h>
struct Stu
{
	char Name[20];//名字
	int Age; //年龄
	char Sex[5];//性别
	char Tel[12];//电话号
};
int main()
{
	struct Stu Tom = { "Tom", 13, "男", "11122546698" };
	struct Stu *s = &Tom;	
	//用结构体指针运算符->访问(常用访问方式)
	printf("%s,%d,%s,%s\n", s->Name, s->Age, s->Sex, s->Tel);
	//s为指针变量,*s对指针解引用,代表指针所指向的内容。
	//而且用指针和结构成员运算符(.)访问结构体时,由于结构成员运算符(.)比指针引用运算符(*)的优先级高,必须代括号。
	printf("%s,%d,%s,%s\n", (*s).Name, (*s).Age, (*s).Sex, (*s).Tel);
	
	return 0;
}

在这里插入图片描述

以上就是C语言入门篇--理解结构体的详细内容,更多关于C语言结构体的资料请关注脚本之家其它相关文章!

相关文章

  • C++ opencv图像平滑滤波器使用示例

    C++ opencv图像平滑滤波器使用示例

    这篇文章主要为大家介绍了C++ opencv数字图像处理图像平滑滤波器的使用示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • C++ STL中一些常用算法总结

    C++ STL中一些常用算法总结

    都说STL是数据容器与算法的高度组合,在前面的文章中我们介绍了常见的几种容器,vector、list、map、deque等,今天我们再来介绍下STL中常用的一些算法,需要的朋友可以参考下
    2024-02-02
  • C++ float、double判断是否等于0问题

    C++ float、double判断是否等于0问题

    这篇文章主要介绍了C++ float、double判断是否等于0问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • C++开发绘制正弦曲线的方法

    C++开发绘制正弦曲线的方法

    这篇文章主要为大家详细介绍了C++绘制正弦曲线的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • C++实现LeetCode(117.每个节点的右向指针之二)

    C++实现LeetCode(117.每个节点的右向指针之二)

    这篇文章主要介绍了C++实现LeetCode(117.每个节点的右向指针之二),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C语言判断字符串是否以str2开头代码

    C语言判断字符串是否以str2开头代码

    这里给大家分享的是一个使用C语言实现的判断字符串中是否以某字符开头或者结尾的代码,非常的简单实用,希望大家能够喜欢
    2017-05-05
  • 教你Clion调试ROS包的方法

    教你Clion调试ROS包的方法

    Clion是一款专门开发C以及C++所设计的跨平台的IDE,本文给大家介绍Clion调试ROS包的方法,感兴趣的朋友跟随小编一起看看吧
    2021-07-07
  • 实例详解C/C++中extern关键字

    实例详解C/C++中extern关键字

    这篇文章主要介绍了C/C++中extern关键字详解 的相关资料,需要的朋友可以参考下
    2016-04-04
  • 汇编语言rep movsd 的使用详解

    汇编语言rep movsd 的使用详解

    rep movsd 每次ecx!=0便执行movsd ,然后ecx=ecx-1 movsd移动ds:[si] 到es:[di],在32位汇编下可以用esi代替si,edi代替di
    2013-09-09
  • C语言编程数据结构带头双向循环链表全面详解

    C语言编程数据结构带头双向循环链表全面详解

    这篇文章主要为大家介绍了C语言编程的数据结构中带头双向循环链表全面详解,有需要的朋友可以借鉴参考下,希望能够有所帮助祝大家多多进步,早日升职加薪
    2021-10-10

最新评论