复合数据类型

在C语言中,复合数据类型是指那些可以包含多个简单数据类型的数据类型。以下是一些常见的C语言复合数据类型以及相关的例子:

1. 数组(Arrays):

数组是一种可以存储多个相同类型数据的数据结构。例如:

#include <stdio.h>

int main() {

int numbers[5]; // 声明一个可以存储5个整数的数组

numbers[0] = 10; // 初始化数组元素 numbers[1] = 20;

numbers[2] = 30;

numbers[3] = 40;

numbers[4] = 50;

 for (int i = 0; i < 5; i++)

 {printf("%d ", numbers[i]); // 输出数组元素}

 return 0;}

2. 结构体(Structures):

结构体允许组合不同类型的数据到一个单独的数据类型中。例如:

#include <stdio.h>

struct Student {

 char name[50];

       float marks;

               int age; };

int main() {

 struct Student student1; // 声明结构体变量

 strcpy(student1.name, "Alice"); // 初始化结构体成员

 student1.age = 20;

 student1.marks = 85.5;

printf("Name: %s\n", student1.name);

printf("Age: %d\n", student1.age); printf("Marks: %.2f\n", student1.marks); return 0;}

3. 联合体(Unions):

联合体允许在同一个内存位置存储不同的数据类型,但一次只能存储一个。 例如:

#include <stdio.h>

union Data {

            int i;

     float f;

     char str[20];};

int main() {

 union Data data; // 声明联合体变量

 data.i = 10; // 初始化联合体的整数成员

 printf("%d\n", data.i); // 输出10

 data.f = 20.5; // 现在初始化浮点数成员

printf("%f\n", data.f); // 输出20.5

 // 注意:由于联合体的所有成员都共享同一块内存,所以修改一个成员会影响其他成员的值。

  return 0;}

4. 指针(Pointers):

指针是一个变量,其值为另一个变量的地址。通过指针,可以间接地访问、修改另一个变量的值。例如:

#include <stdio.h>

int main() {

int num = 50; // 声明并初始化一个整数变量

 int *ptr = &num; // 声明一个指针变量并使0其指向num的地址

 printf(" num的值: %d\n", num);

printf("num的地址: %p\n", (void*)&num);

printf("ptr的值: %p\n", (void*)ptr);

printf("ptr指向的值: %d\n", *ptr); // 使用*操作符解引用指针以获取其指向的值

*ptr = 60; // 通过指针修改num的值

printf("修改后num的值: %d\n", num);

return 0;}

这是C语言中一些比较常用的复合数据类型,下面我们来看看使用复合数据类型来制作一个学生信息管理系统。

b33bac5d4bce42b2a89177787bcd2913.png

 

我们先定义了一个TXL函数并对其进行赋值。

5c7328e282ca496e805d6bd395f49301.png

然后定义了一个结构体函数,用于编号查找。

34d756314e6341e780bb74bec0e4300a.png

 再接收结构函数返回的结构变量体。

3619c752f3024f77b20bfb6cbdbde3a0.png

 最后,在C语言中,"system("pause")"是一个常见的用法,通常用于Windows平台的命令行程序中。这个语句的作用是调用系统命令"pause"来实现程序暂停的功能,等待用户按下任意键后才会继续执行程序。

23c2a5f98e1d471283e48b90a965046a.png

 好啦,今天的分享就到这里了。再次声明:作者水平有限,如有失偏颇,还请各位不吝赐教

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/611165.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

冯喜运:4.12黄金剑指2400关口,黄金原油走势分析及操作建议

【黄金消息面分析 】美债收益率集体狂飙。10年期美债收益率上破4.5%的关键门槛&#xff0c;收报4.514%。对美联储政策利率最敏感的2年期美债收益率大涨近20个基点&#xff0c;收报4.941%。5/30年期美债收益率自9月份以来首次倒挂。现货黄金从历史高位回落&#xff0c;盘中一度较…

Sketch3D:用于草图到3D生成的样式一致性指南

Sketch3D: Style-Consistent Guidance for Sketch-to-3D Generation Sketch3D&#xff1a;用于草图到3D生成的样式一致性指南 Wangguandong Zheng 重试 错误原因 Southeast UniversityChina 重试 错误原因 wgdzhengseu.edu.cnHaifeng Xia 重试 错误原因 Southeast Universit…

嵌入式单片机入职第二天-EEPROM与IIC

上午&#xff1a; 1.安装Jlink驱动&#xff0c;死活没反应&#xff0c;因为昨天才装完系统&#xff0c;领导让我装电脑主板驱动 领导方法进惠普官网通过查询电脑型号&#xff0c;里面几十个驱动搞得我眼花&#xff0c;领导告诉我进官网就去开会了&#xff0c;可能因为是外网&…

Python数据可视化:同时展示两个变量之间的双变量(联合)关系以及每个变量的单变量(边缘)分布seaborn.jointplot

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 Python数据可视化&#xff1a; 同时展示两个变量之间的 双变量&#xff08;联合&#xff09;关系以及 每个变量的单变量(边缘)分布 seaborn.jointplot 选择题 jointplot可以画出什么样的图标?…

Leetcode算法训练日记 | day23

一、修剪二叉搜索树 1.题目 Leetcode&#xff1a;第 669 题 给你二叉搜索树的根节点 root &#xff0c;同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树&#xff0c;使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即&#xff…

nvm安装详细教程(安装nvm、node、npm、cnpm、yarn及环境变量配置)

一、安装nvm 1. 下载nvm 点击 网盘下载 进行下载 2、双击下载好的 nvm-1.1.12-setup.zip 文件 3.双击 nvm-setup.exe 开始安装 4. 选择我接受&#xff0c;然后点击next 5.选择nvm安装路径&#xff0c;路径名称不要有空格&#xff0c;然后点击next 6.node.js安装路径&#…

【网安小白成长之路】6.pikachu、sql-labs、upload-labs靶场搭建

&#x1f42e;博主syst1m 带你 acquire knowledge&#xff01; ✨博客首页——syst1m的博客&#x1f498; &#x1f51e; 《网安小白成长之路(我要变成大佬&#x1f60e;&#xff01;&#xff01;)》真实小白学习历程&#xff0c;手把手带你一起从入门到入狱&#x1f6ad; &…

【C++题解】1605. 求一个两位数的个位和十位的和

问题&#xff1a;1605. 求一个两位数的个位和十位的和 类型&#xff1a;基本运算、拆位求解。 题目描述&#xff1a; 从键盘读入一个两位的整数 n &#xff0c;请求出这个两位整数个位和十位的和是多少&#xff1f; 输入&#xff1a; 一个两位的整数 n 。 输出&#xff1a…

新手尝试硬件买单片机还是树莓派?

新手尝试硬件买单片机还是树莓派&#xff1f; 新手的话&#xff0c;先学单片机吧&#xff0c;51&#xff0c;stm32&#xff0c;都可以&#xff0c;很多学习平台给的例子比较多&#xff0c;程序相对都比较简单&#xff0c;更贴近硬件&#xff0c;玩起来比较容易做出小东西&…

LightM-UNet:Mamba 辅助的轻量级 UNet 用于医学图像分割

摘要 https://arxiv.org/pdf/2403.05246.pdf UNet及其变体在医学图像分割中得到了广泛应用。然而&#xff0c;这些模型&#xff0c;特别是基于Transformer架构的模型&#xff0c;由于参数众多和计算负载大&#xff0c;使得它们不适合用于移动健康应用。最近&#xff0c;以Mamb…

网工基础协议——IP地址

IP地址的概念&#xff1a; IP 地址是我们进行TCP/IP通讯的基础&#xff0c;每个连接到网络上的计算机都必须有一个!P地址。我们目前使用的IP地址是32位的&#xff0c;通常以点分十进制表示。例如:192.168.0.181。IP地址的格式为: IP地址 网络地址 主机地址 或者 |P地址主机地…

[大模型]Atom-7B-Chat 接入langchain搭建知识库助手

Atom-7B-Chat 接入langchain搭建知识库助手 环境准备 在autodl平台中租一个3090等24G显存的显卡机器&#xff0c;如下图所示镜像选择PyTorch–>2.0.0–>3.8(ubuntu20.04)–>11.8 接下来打开刚刚租用服务器的JupyterLab&#xff0c;并且打开其中的终端开始环境配置…