首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C语言结构体

C语言结构体

作者头像
岳泽以
发布于 2022-10-26 08:11:22
发布于 2022-10-26 08:11:22
2.2K00
代码可运行
举报
文章被收录于专栏:岳泽以博客岳泽以博客
运行总次数:0
代码可运行

结构体

结构体是用户建立由不同类型数据组成的混合型的数据结构(数据类型)。

系统提供的类型:int double float char long 数组,指针...

一般形式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
struct 结构体名{
    成员;
};

例如:定义一个学生的结构体,学生包括姓名,性别,年龄。声明一个学生的变量,输出学生的信息。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>
#include<string.h>
struct Student{
    char name[20];
    char sex;
    int age;
};
int main(){
    struct Student stu,stu2;
    strcpy(stu.name,"zhangsan");
    stu.sex='M';
    stu.age=10;
    printf("%s %c %d\n",stu.name,stu.sex,stu.age);
    strcpy(stu2.name,"lisi");
    stu2.sex='F';
    stu.age=12;
    printf("%s %c %d\n",stu2.name,stu2.sex,stu2.age);
    return 0;
}

第二种:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h> 
#include<string.h> 
struct Student{
    char *name;
    char sex;
    int age;
}stu1,stu2,stu3;  
int main(){
    stu1.name = "zhangsan";
    stu1.sex = 'F';
    stu1.age = 18;
    stu2.name = "zhangsan";
    stu2.sex = 'F';
    stu2.age = 18;
    stu3.name = "zhangsan";
    stu3.sex = 'F';
    stu3.age = 18;
    printf("%s %c %d\n",stu1.name,stu1.sex,stu1.age);
    printf("%s %c %d\n",stu2.name,stu2.sex,stu2.age);
    printf("%s %c %d\n",stu3.name,stu3.sex,stu3.age);
    return 0;
}

第三种:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h> 
#include<string.h> 
struct Student{
    char *name;
    char sex;
    int age;
}stu1={"zhangsan",'F,18'},stu2={"lisi",'M',19};  
int main(){
    printf("%s %c %d\n",stu1.name,stu1.sex,stu1.age);
    printf("%s %c %d\n",stu2.name,stu2.sex,stu2.age);
    return 0;
}

结构体数组:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h> 
struct Student{
    char name[20];
    char sex;
    int age;
};  
int main(){
    struct Student a[5]={
    {"zhangsan",'M',20},
    {"lisi",'M',20},
    {"wangwu",'M',20},
    {"zhaoliu",'M',20},
    {"sunqi",'M',20}};
    int i;
    for(i=0;i<=4;i++){
    printf("%s %c %d\n",a[i].name,a[i].sex,a[i].age); 
    }
    return 0;
}

结构体指针

结构体指针是指向结构体变量的指针,一个结构体变量的地址就是这个结构体变量的指针。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h> 
#include<string.h>
struct Student{
    int num;
    char name[20];
    float score;
}stu1,stu2,stu3;  
int main(){
    struct Student *p;
    p=&stu1;
    (*p).num=1;strcpy((*p).name,"zhangsan");
    (*p).score=98.5;
    printf("%d %s %f\n",(*p).num,(*p).name,(*p).score);
    p=&stu2;
    p->num=2;strcpy(p->name,"lisi");p->score=95.5;
    printf("%d %s %f\n",p->num,p->name,p->score);
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021 年 04 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
结构体
一、什么是结构体 •1. C语言中的数组,用法跟其他语言差不多。当一个整体由多个数据构成时,我们可以用数组来表示这个整体,但是数组有个特点:内部的每一个元素都必须是相同类型的数据。 • •2.在实际应用中,我们通常需要由不同类型的数据来构成一个整体,比如学生这个整体可以由姓名、年龄、身高等数据构成,这些数据都具有不同的类型,姓名可以是字符串类型,年龄可以是整型,身高可以是浮点型。 • •3.为此,C语言专门提供了一种构造类型来解决上述问题,这就是结构体,它允许内部的元素是不同类型的。 二、结构体的定义 •1
用户1941540
2018/05/11
1.7K0
c语法进阶
不管是基本数据类型还是结构体,c都是值传递,和java不同的是,java基本数据类型是值传递,对象是引用传递。所以在c当中一般都是指针传递
曾大稳
2018/09/11
4760
c语法进阶
结构体知识点
我们已经掌握了结构体的基本使⽤了。 现在我们深⼊讨论⼀个问题:计算结构体的⼤⼩。 这也是⼀个特别热⻔的考点: 结构体内存对⻬
ljw695
2024/10/18
1120
【重新认识C语言----结构体篇】
在C语言编程中,结构体(Structure) 是一种非常重要的复合数据类型。它允许开发者将多个不同类型的变量组合成一个逻辑单元,从而更高效地管理复杂数据。无论是实现链表、树等数据结构,还是描述现实世界中的实体(如学生、商品等),结构体都扮演着核心角色。本文将详细讲解结构体的定义、使用及高级特性,帮助读者彻底掌握这一关键概念。
用户11456817
2025/02/08
1830
C++之结构体和共用体、typedef 指令
memset的方法:https://www.jianshu.com/p/9ba8b9fcb63b
包子388321
2020/06/16
8680
面试题012:请解释一下C语言中的结构体
结构体(Struct)是C语言中一种复合数据类型,它允许我们将不同类型的数据组合在一起,形成一个单一的变量。
C语言中文社区
2023/09/13
2890
面试题012:请解释一下C语言中的结构体
从C到C++(小白式过渡学习)
C,C++使用一个编译器来编译,所以C++并没有独立的编译器,只是有了自己的编译方式。
杨鹏伟
2020/09/11
4790
Go 结构体链表
链表是一种线性数据结构,由一系列节点组成,每个节点包含两个部分:数据部分和指向下一个节点的指针(或引用)部分。链表的第一个节点称为头节点(head),最后一个节点的指针指向空(null)。
f1sh
2024/07/17
1300
一个交换程序的通用版本
Author:bakari   Date:2012.9.3       交换程序是每个开始学习编程的人必学习的一个初级算法。算法思想很简单,就是为两个交换的双方在定义一个第三者即可。但越学到后面,你也许会发现这个程序也是蕴藏着很多知识点,并且一些知识点只要用这个作为例子就能非常好的理解,比如说在学习指针和函数时,一定会碰到的传值还是传指的问题。学到C++又会有传引用的问题。这些问题我个人觉得只要用学习这个例子一般都可以理解清楚。       前不久有学长在跟我讲这方面的知识时又进一步补充了这个交换程序,他要
Linux云计算网络
2018/01/11
6570
一个交换程序的通用版本
C++ 炼气期之结构体
随着计算机向着不同领域的延伸,数据的概念已经不仅局限于数值型数据,计算机需要处理大量的非数值类型数据。如在企业级程序的开发过程中所涉及到的工作流信息,几乎都是非数值型数据。
一枚大果壳
2022/08/23
7921
C++ 炼气期之结构体
结构体与指针(一)
在学习数据结构的时候,会经常使用到结构体。今天分享的内容是结构体与指针,因为结构体和指针本身的内容并不是太多,所以今天的内容还包括了链表的实现。希望可以通过这篇博客,让大家熟悉结构体与指针,以及链表的实现。
ZackSock
2020/02/14
7450
【C语言】初步认识结构体
用户11328191
2024/10/23
1610
【C语言笔记】结构体
我们都知道C语言中变量的类型决定了变量存储占用的空间。当我们要使用一个变量保存年龄时可以将其声明为int类型,当我们要使用一个变量保存某一科目的考试成绩时可以将其声明为float。
正念君
2019/06/26
2.3K0
【C语言笔记】结构体
4.1 C/C++ 使用结构与指针
C/C++语言是一种通用的编程语言,具有高效、灵活和可移植等特点。C语言主要用于系统编程,如操作系统、编译器、数据库等;C语言是C语言的扩展,增加了面向对象编程的特性,适用于大型软件系统、图形用户界面、嵌入式系统等。C/C++语言具有很高的效率和控制能力,但也需要开发人员自行管理内存等底层资源,对于初学者来说可能会有一定的难度。
王 瑞
2023/10/10
2880
4.1 C/C++ 使用结构与指针
全国二级C知识点总结6-结构体、链表、共用体
l 类型定义形式: typedef 旧类型名 新类型名;(例如:typedef double D ; )
用户6755376
2019/12/02
1K0
剖析c语言结构体的高级用法(一)
在写这篇文章之前,说实话,自身对结构体的用法,只会两点——就是点访问式和指针式访问结构体内部成员。这对一个搞底层的工程师来讲,显然实在太low了。不妨读者看到这里,可以停下来思索一下,看看自己对c语言结构体掌握了多少。下面是我这几天结合自己的学习而总结的一篇算比较全的关于结构体的用法,欢迎大家来吐槽。
用户6280468
2022/03/21
5470
剖析c语言结构体的高级用法(一)
C语言-结构体与位域
C语言里的结构体是可以包含不同数据类型和相同数据类型的一个有序集合,属于构造类型,可以自己任意组合,并且结构体里也可以使用结构体类型作为成员。
DS小龙哥
2022/01/07
5910
江哥带你玩转C语言 | 14 - 结构体-枚举-共用体
struct Student { int age; struct Student stu; };
极客江南
2021/07/11
8210
C语言——结构体类型(二)【结构体内存对齐,结构体数组】
🔍问题引导: 我们都知道sizeo(变量类型))可以得到一个变量所占内存的大小,那么,请看下面这串代码👇🏻
用户11029137
2024/03/19
7170
C语言——结构体类型(二)【结构体内存对齐,结构体数组】
C++的对象与类的含义
C++是一门面向对象的编程语言,理解C++需要掌握类(class)和对象(object)这两个概念。
芯动大师
2023/10/14
2600
C++的对象与类的含义
相关推荐
结构体
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档