C语言结构体的具体使用方法

 更新时间:2021年08月26日 16:52:32   作者:yycure  
这篇文章主要介绍了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++高性能服务器框架中的协程调度模块,文中通过代码示例介绍的非常详细,对我们的学习或工作有一定的帮助,需要的朋友可以参考下
    2023-06-06
  • C++详细讲解对象的构造

    C++详细讲解对象的构造

    当在参数化构造函数中声明对象时,必须将初始值作为参数传递给构造函数。对象声明的常规方法可能不起作用。构造函数可以显式或隐式调用,让我们一起了解对象的构造
    2022-04-04
  • C++顺序表的基本操作(使用模版类)

    C++顺序表的基本操作(使用模版类)

    这篇文章主要为大家详细介绍了C++顺序表的基本操作,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • 掌握C++编程中反斜杠续行符的使用方法

    掌握C++编程中反斜杠续行符的使用方法

    这篇文章主要介绍了掌握C++编程中反斜杠续行符的使用方法,包括取反斜杠的本意的方法等基本知识点,需要的朋友可以参考下
    2016-01-01
  • C语言实现SM4加解密方式

    C语言实现SM4加解密方式

    这篇文章主要介绍了C语言实现SM4加解密方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • C语言入门之浮点数

    C语言入门之浮点数

    这篇文章主要为大家介绍了C语言的浮点数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • 利用C语言实现将格式化数据和字符串相互转换

    利用C语言实现将格式化数据和字符串相互转换

    这篇文章主要为大家详细介绍了2个函数,分别是sprintf和sscanf,可以用来实现将格式化数据和字符串相互转换,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-03-03
  • C语言算法--有序查找(折半查找/二分查找)

    C语言算法--有序查找(折半查找/二分查找)

    我们知道无序查找只能靠遍历,如果有序查找我们还挨个去遍历,未免太浪费时间,所以这里我们会用到不一样的方法,希望能给你带来帮助
    2021-08-08
  • Qt实现简易秒表设计

    Qt实现简易秒表设计

    这篇文章主要为大家详细介绍了Qt实现简易秒表设计,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • 深入解读C语言中的符号常量EOF

    深入解读C语言中的符号常量EOF

    这篇文章主要介绍了C语言中的符号常量EOF,文中还介绍了EOF的验证和打印方法,需要的朋友可以参考下
    2015-11-11

最新评论