C语言结构体超详细讲解

C语言结构体超详细讲解

什么是结构体?

结构体是一种用户自定义的数据类型,它可以由一些基本类型的数据组成一个具有独立性的数据结构。它和数组的定义方式类似,都是用一个标识符来命名,并用大括号将组成这个结构体的数据类型和标识符列表括起来,中间用逗号隔开。例如:

struct Student {
    char name[20];
    int age;
    float score;
};

上述代码定义了一个名为“Student”的结构体类型,它由三个成员组成:一个字符数组(名为“name”)、一个整型变量(名为“age”)、一个浮点型变量(名为“score”)。

结构体变量的定义和使用

结构体变量的定义和使用与其他变量类似,只不过需要在标识符前加上“结构体类型名”的前缀。例如:

struct Student stu;
strcpy(stu.name, "张三");
stu.age = 20;
stu.score = 86.5;

上述代码定义了一个名为“stu”的结构体变量,并对它的成员变量进行赋值。

结构体成员的访问

结构体的成员可以通过“.”(点)操作符来访问。例如:

printf("姓名:%s,年龄:%d,分数:%.2f", stu.name, stu.age, stu.score);

上述代码输出了结构体变量“stu”的三个成员的值。

结构体指针的定义和使用

结构体指针的定义和使用也与其他指针类似,只不过需要在指针变量前加上“struct”关键字和结构体类型名,并用“->”操作符来访问结构体成员。例如:

struct Student *p = &stu;
printf("姓名:%s,年龄:%d,分数:%.2f", p->name, p->age, p->score);

上述代码定义了一个名为“p”的结构体指针变量,并将其指向结构体变量“stu”,然后通过“->”操作符来访问结构体成员。

结构体作为函数的参数

结构体可以作为函数的参数进行传递。在函数中可以通过指针来访问结构体成员。例如:

void print(struct Student *s) {
    printf("姓名:%s,年龄:%d,分数:%.2f", s->name, s->age, s->score);
}

print(&stu);

上述代码定义了一个名为“print”的函数,它接受一个指向结构体类型为“Student”的指针变量,并输出这个结构体变量的成员。

结构体的嵌套

结构体也可以嵌套在另一个结构体中。例如:

struct Date {
    int year;
    int month;
    int day;
};

struct Student {
    char name[20];
    int age;
    float score;
    struct Date birthDate;
};

上述代码定义了一个名为“Date”的结构体类型和一个名为“Student”的结构体类型,其中“Student”类型的成员变量包括一个名为“birthDate”的“Date”类型变量。

示例

示例一

#include <stdio.h>
#include <string.h>

struct Student {
    char name[20];
    int age;
    float score;
};

int main() {
    struct Student stu;
    strcpy(stu.name, "张三");
    stu.age = 20;
    stu.score = 86.5;
    printf("姓名:%s,年龄:%d,分数:%.2f", stu.name, stu.age, stu.score);
    return 0;
}

上述代码定义了一个名为“stu”的结构体变量,对其进行了赋值,并输出了它的三个成员的值。

示例二

#include <stdio.h>
#include <string.h>

struct Point {
    int x;
    int y;
};

struct Rectangle {
    struct Point topLeft;
    struct Point bottomRight;
};

int main() {
    struct Rectangle rect;
    rect.topLeft.x = 0;
    rect.topLeft.y = 0;
    rect.bottomRight.x = 100;
    rect.bottomRight.y = 100;
    printf("左上角:%d,%d,右下角:%d,%d", rect.topLeft.x, rect.topLeft.y, rect.bottomRight.x, rect.bottomRight.y);
    return 0;
}

上述代码定义了一个名为“rect”的结构体变量,其中又包含了两个名为“topLeft”和“bottomRight”的结构体变量。可以看出,结构体的嵌套可以用来表示更为复杂的数据结构。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言结构体超详细讲解 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • 苹果id账号邮箱全忘了怎么办 苹果刷机后忘记id找回方法

    苹果ID账号邮箱全忘了怎么办?苹果刷机后忘记ID找回方法 问题描述 苹果用户在使用苹果设备时,需要用到苹果ID账号邮箱进行登录,但是有时候由于各种原因,如久未使用、账号被盗、记忆力不好等,可能会忘记账号的邮箱地址。在遇到苹果设备需要刷机或升级系统时,如果没有记住账号信息,则会导致无法激活设备,给用户带来很大的困扰。 解决方法 以下是忘记苹果ID账号邮箱地址后…

    other 2023年6月27日
    00
  • javascript定义类和类的实现实例详解

    以下是使用标准的Markdown格式文本,详细讲解JavaScript中定义类和类的实现的完整攻略: JavaScript中定义类和类的实现 1. 使用构造函数定义类 在JavaScript中,可以使用构造函数来定义类。构造函数是一个普通的函数,用于创建对象实例。通过在构造函数中使用this关键字来定义对象的属性和方法。 示例代码: function Per…

    other 2023年10月15日
    00
  • 易语言ocx控件制作条形码功能

    下面我会详细讲解“易语言OCX控件制作条形码功能”的完整攻略。 1. 准备工作 在开始制作条形码功能之前,我们需要做一些准备工作: 下载安装易语言开发环境。 下载安装条形码字体文件,如Code128字体、Code39字体等。 下载安装条形码生成库,并在易语言中添加该库文件。 2. 创建控件 在易语言中,我们可以通过如下代码来创建一个简单的OCX控件: ‘–…

    other 2023年6月26日
    00
  • vncserver配置、启动、重启与连接方法

    接下来我将为您讲解详细的vncserver配置、启动、重启与连接方法的完整攻略。 VNC Server简介 VNC(Virtual Network Computing)是一种远程桌面控制协议。VNC Server就是指在服务器上运行的用于接受来自客户端VNC Viewer的远程连接的程序。 VNC Server的安装 在CentOS 7 中可以通过 yum …

    其他 2023年4月16日
    00
  • C语言中的三种循环语句

    C语言中提供了三种循环语句,分别是while、do-while和for循环。这三种循环语句用于重复执行一组指令,直到一个特定的条件被满足。下面我来一一介绍它们的用法。 while循环语句 while循环语句的用法如下: while(condition) { //循环体 } 其中,condition是循环条件,当condition为真时,执行循环体。循环体是被…

    other 2023年6月27日
    00
  • Windows cmd命令行输入输出重定向问题

    针对“Windows cmd命令行输入输出重定向问题”,我给出以下完整攻略。 什么是输入输出重定向? 命令行输入输出重定向是指,在执行命令时,可以将命令中的输入输出流重定向到指定的文件或设备上,使得命令可以从文件或设备中输入数据,将输出结果保存在文件或设备中,而不是向屏幕输出。 在Windows命令行中,可以通过符号来实现输入输出重定向: 输入重定向符号:“…

    other 2023年6月26日
    00
  • Android 读取Properties配置文件的小例子

    下面让我来详细讲解“Android 读取Properties 配置文件的小例子”的完整攻略。 什么是Properties配置文件 Properties是Java类库提供的一种用于操作配置文件的类。它提供读取和写入简单键值对的功能。通常情况下,Properties用于存储应用程序的设置,例如数据库连接、日志级别、服务器地址等。 Properties配置文件的格…

    other 2023年6月25日
    00
  • WinXP如何更改IP地址?WinXP系统更改IP地址的方法

    WinXP如何更改IP地址? 在WinXP系统中,更改IP地址可以通过以下步骤完成: 打开“控制面板”:点击“开始”菜单,选择“控制面板”选项。 进入“网络连接”设置:在控制面板窗口中,双击“网络连接”图标。 选择网络适配器:在网络连接窗口中,找到你要更改IP地址的网络适配器,右键点击该适配器,并选择“属性”。 配置IP地址:在适配器属性窗口中,找到并选中“…

    other 2023年7月30日
    00
合作推广
合作推广
分享本页
返回顶部