服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C语言中结构体实例解析

C语言中结构体实例解析

2022-09-24 16:54菠萝印象威 C/C++

大家好,本篇文章主要讲的是C语言中结构体实例解析,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下

一.结构体定义

C语言结构体由一系列相同或者不同类型的数据构成的集合,结构体类型就是以struct关键字定义的数据类型。

结构体的格式如下:

struct 结构名称 { 
    结构体所包含的数据成员,包括变量数组等
} 结构变量 ;//结构变量可以指定一个或多个

举例:

struct Student
{
	char name[10];
	char sex[2];
	int age;
}Stu

 

二.实例演示

先看下结构体变量如何初始化

C语言中结构体实例解析

#include <stdio.h>
#include <string.h>
struct Student
{
        char name[10];
        char sex[5];
        int age;
}Stu = {"Mike","man",22};

int main(int argc, char *argv[])
{
        printf("name:%s
sex:%s
age:%d
",Stu.name,Stu.sex,Stu.age);
}

初始化结构体变量很简单,直接在结构体变量后面赋值。
结果:

C语言中结构体实例解析

 

结构体作为函数参数

#include <stdio.h>
#include <string.h>
//定义Student结构体
struct Student
{
        char name[10];
        char sex[5];
        int age;
}Stu;

void print(struct Student stu)
{
        printf("Student name:%s
",stu.name);
        printf("Student sex:%s
",stu.sex);
        printf("Student age:%d
",stu.age);
}

int main(int argc, char *argv[])
{
        struct Student stu1;
        strcpy(stu1.name,"will");
        strcpy(stu1.sex,"man");
        stu1.age = 20;
        print(stu1);
        //Stu
        Stu.age=11;
        print(Stu);
}                 

C语言中结构体实例解析

从这个示例可以看出:将结构体作为参数传入函数,定义结构体时,我们可以在;前面定义结构体变量, 这样就不需要再定义结构变量,如:struct Student stu1;假设stu1在定义结构体时就定义变量,那么就可以直接赋值。

结果:

C语言中结构体实例解析

可以看出第二个学生打印,因为在定义结构体时就已经定义结构变量,所以可以直接赋值。

 

结构体指针

实例演示,传入结构体指针

C语言中结构体实例解析

#include <stdio.h>
#include <string.h>
struct Student
{
        char name[10];
        char sex[5];
        int age;
}Stu;

void print(struct Student *stu)
{
        printf("Student name:%s
",stu->name);
        printf("Student sex:%s
",stu->sex);
        printf("Student age:%d
",stu->age);
}

int main(int argc, char *argv[])
{
        struct Student stu1;
        strcpy(stu1.name,"will");
        strcpy(stu1.sex,"man");
        stu1.age = 20;
        print(&stu1);
        Stu.age=11;
        print(&Stu);
}

这里的实例和上面例子的区别主要是:
1.将定义的变量改为指针struct Student *stu。
2.指针赋值时使用->。
3.使用打印函数时,改为取地址。

结果一致

 

三.typedef struct 和 struct的区别

 

1、声明不同

1)、struct:struct可以直接使用结构体名字声明结构体。
2)、typedef struct:typedef struct为修饰结构体,结构体有了别名,通过结构体别名声明结构体。

 

2、访问成员变量不同

1)、struct:struct定义的结构体变量,可直接访问结构体成员

2)、typedef struct:typedef struct定义的结构体变量,不可直接访问结构体成员,必须显式的通过结构体变量来访问成员。

 

3、重新定义不同

1)、struct:想重新定义struct结构体的话,必须重写整个结构体。

2)、typedef struct:想重新定义typedef struct结构体的话,可以通过别名来继承结构体进行重新定义。
举例:

C语言中结构体实例解析

可以看到:
使用typedef struct定义的结构体,我们通常是使用别名进行操作,而且在使用时也简化了使用方法,例如:Stu s1,相当于声明对象一样,如果使用struct,那么就要写成struct Student stu1;。

如果直接使用结构体名称那么会报错:

错误示例:

C语言中结构体实例解析

报错结果:

C语言中结构体实例解析

改回别名操作,结果:

C语言中结构体实例解析

 

总结

到此这篇关于C语言中结构体实例解析的文章就介绍到这了,更多相关C语言结构体内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/baidu_41191295/article/details/122939748

延伸 · 阅读

精彩推荐
  • C/C++用C语言winform编写渗透测试工具实现SQL注入功能

    用C语言winform编写渗透测试工具实现SQL注入功能

    本篇文章主要介绍使用C#winform编写渗透测试工具,实现SQL注入的功能。使用python编写SQL注入脚本,基于get显错注入的方式进行数据库的识别、获取表名、获...

    吟风芥尘11942021-12-24
  • C/C++C语言实现的统计素数并求和代码分享

    C语言实现的统计素数并求和代码分享

    这篇文章主要介绍了C语言实现的统计素数并求和代码分享,来自PAT平台(浙江大学计算机程序设计能力考试系统)的一个题目,需要的朋友可以参考下...

    C语言教程网9382021-01-30
  • C/C++CMake的简单应用

    CMake的简单应用

    这篇文章主要介绍了CMake的简单应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来...

    泣血4322021-10-27
  • C/C++C++求所有顶点之间的最短路径(用Dijkstra算法)

    C++求所有顶点之间的最短路径(用Dijkstra算法)

    这篇文章主要为大家详细介绍了C++用Dijkstra算法求所有顶点之间的最短路径,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以...

    ChanJose4202021-09-02
  • C/C++C++实现LeetCode(31.下一个排列)

    C++实现LeetCode(31.下一个排列)

    这篇文章主要介绍了C++实现LeetCode(31.下一个排列),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下...

    Grandyang8762021-11-25
  • C/C++C/C++获取键盘事件的方法

    C/C++获取键盘事件的方法

    今天小编就为大家分享一篇C/C++获取键盘事件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    lindorx9752021-06-28
  • C/C++详解C语言之预处理(下)

    详解C语言之预处理(下)

    这篇文章主要介绍了C语言程序的预处理,小编觉得这篇文章写的还不错,需要的朋友可以参考下,希望能够给你带来帮助...

    iEucliwood3752022-02-20
  • C/C++关于C++中strcpy函数例题讲解

    关于C++中strcpy函数例题讲解

    在本篇文章里小编给大家整理的是关于C++中strcpy函数例题讲解内容,需要的朋友们可以参考下。...

    笑着刻印在那一张泛黄9712021-09-03