当前位置: 首页 > news >正文

3 数据类型、运算符与表达式-3.1 C语言的数据类型和3.2 常量与变量

  1. 数据类型
    1. 基本类型
      1. 整型
      2. 字符型
      3. 实型(浮点型)
        1. 单精度型
        2. 双精度型
      4. 枚举类型
    2. 构造类型
      1. 数组类型
      2. 结构体类型
      3. 共用体类型
    3. 指针类型
    4. 空类型
#include <stdio.h>
#include <string.h>
#include <stdbool.h> // 包含布尔类型定义
// 常量和符号常量
#define PRICE 30// 函数返回空类型
void greet()
{printf("你好!\n");
}// 定义一个枚举类型,表示一周中的几天
enum Weekday
{Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday
};// 定义一个结构体类型,表示学生信息
struct Student
{char name[50];int age;float score;
};// 定义一个共同体类型,表示既可以存储整数也可以存储浮点数的变量
union Data
{int intValue;float floatValue;
};int main()
{int age = 30; // 整型变量printf("年龄: %d\n", age);char initial = 'A'; // 字符型变量printf("首字母: %c\n", initial);float height = 170.5f; // 单精度浮点型double pi = 3.14159;   // 双精度浮点型printf("身高: %.1f 米\n", height);printf("π值: %lf\n", pi);bool isMale = true; // 布尔型变量printf("性别: %s\n", isMale ? "男" : "女");greet(); // 调用无返回值的函数int numbers[5] = {1, 2, 3, 4, 5}; // 整型数组for (int i = 0; i < 5; i++){printf("numbers[%d]: %d\n", i, numbers[i]);}int num = 100;int *ptr = &num; // 整型指针printf("数值: %d\n", num);printf("通过指针访问数值: %d\n", *ptr);enum Weekday today = Wednesday; // 声明并初始化一个枚举变量// 打印今天是周几switch (today){case Monday:printf("今天是星期一。\n");break;case Tuesday:printf("今天是星期二。\n");break;case Wednesday:printf("今天是星期三。\n");break;case Thursday:printf("今天是星期四。\n");break;case Friday:printf("今天是星期五。\n");break;case Saturday:printf("今天是星期六。\n");break;case Sunday:printf("今天是星期日。\n");break;}// 注意:枚举值默认从0开始,但可以指定起始值enum{Red = 100, // 从100开始Green,Blue};enum{ // 也可以不命名枚举类型,直接使用Jan = 1,Feb,Mar};printf("Green 的值是:%d\n", Green); // 输出 Green 的值,基于前面的定义应为 101struct Student student1; // 声明一个结构体变量// 初始化结构体变量strcpy(student1.name, "张三");student1.age = 20;student1.score = 88.5;// 打印学生信息printf("姓名: %s, 年龄: %d, 成绩: %.1f\n", student1.name, student1.age, student1.score);union Data data;// 存储整数data.intValue = 100;printf("作为整数时的值: %d\n", data.intValue);// 同一块内存现在存储浮点数data.floatValue = 3.14;// 注意:这里打印的是之前整数值转换成浮点数的结果,因为共用体在同一时间只能有效存储一种类型的数据printf("转换为浮点数后的值(可能不准确): %.2f\n", data.floatValue);int num1, total;num1 = 10;total = num1 * PRICE;printf("total = % d", total);return 0;
}

相关文章:

3 数据类型、运算符与表达式-3.1 C语言的数据类型和3.2 常量与变量

数据类型 基本类型 整型字符型实型(浮点型) 单精度型双精度型 枚举类型 构造类型 数组类型结构体类型共用体类型 指针类型空类型 #include <stdio.h> #include <string.h> #include <stdbool.h> // 包含布尔类型定义 // 常量和符号常量 #define PRICE 30//…...

NSSCTF-Web题目5

目录 [SWPUCTF 2021 新生赛]error 1、题目 2、知识点 3、思路 [LitCTF 2023]作业管理系统 1、题目 2、知识点 3、思路 [HUBUCTF 2022 新生赛]checkin 1、题目 2、知识点 3、思路 [SWPUCTF 2021 新生赛]error 1、题目 2、知识点 数据库注入、报错注入 3、思路 首先…...

cnvd_2015_07557-redis未授权访问rce漏洞复现-vulfocus复现

1.复现环境与工具 环境是在vulfocus上面 工具&#xff1a;GitHub - vulhub/redis-rogue-getshell: redis 4.x/5.x master/slave getshell module 参考攻击使用方式与原理&#xff1a;https://vulhub.org/#/environments/redis/4-unacc/ 2.复现 需要一个外网的服务器做&…...

免费,C++蓝桥杯等级考试真题--第7级(含答案解析和代码)

C蓝桥杯等级考试真题--第7级 答案&#xff1a;D 解析&#xff1a;步骤如下&#xff1a; 首先&#xff0c;--a 操作会使 a 的值减1&#xff0c;因此 a 变为 3。判断 a > b 即 3 > 3&#xff0c;此时表达式为假&#xff0c;因为 --a 后 a 并不大于 b。因此&#xff0c;程…...

python为什么要字符串格式化

Python2.6 开始&#xff0c;新增了一种格式化字符串的函数 str.format()&#xff0c;它增强了字符串格式化的功能。相对于老版的%格式方法&#xff0c;它有很多优点。 1.在%方法中%s只能替代字符串类型&#xff0c;而在format中不需要理会数据类型&#xff1b; 2.单个参数可以…...

go语言后端开发学习(三)——基于validator包实现接口校验

前言 在我们开发模块的时候,有一个问题是我们必须要去考虑的&#xff0c;它就是如何进行入参校验&#xff0c;在gin框架的博客中我就介绍过一些常见的参数校验&#xff0c;大家可以参考gin框架学习笔记(四) ——参数绑定与参数验证&#xff0c;而这个其实也不是能够完全应对我…...

系统架构设计师【补充知识】: 应用数学 (核心总结)

一、 图论之最小生成树 (1)定义: 在连通的带权图的所有生成树中&#xff0c;权值和最小的那棵生成树(包含图中所有顶点的树)&#xff0c;称作最小生成树。 (2)针对问题: 带权图的最短路径问题。 (3)最小生成树的解法有普里姆(Prim)算法和克鲁斯卡尔(Kruskal)算法&#xff0c;我…...

【ArcGIS微课1000例】0118:一文讲清楚tif(geotiff)栅格数据格式

文章目录 一、Tiff概述二、GeoTiff概述1. ovr文件2. tfw文件3. xml文件4. dbf文件一、Tiff概述 TIFF(Tagged Image File Format)是一种常见的图像文件格式,它被广泛用于存储和传输各种类型的图像数据。下面是对TIFF格式数据的介绍: 图像存储:TIFF格式可以存储多通道的位…...

调用第三方API --------------Python篇

在项目开发过程中&#xff0c;可能需要调用第三方的一些API或者公司提供的数据接口来得到相应的数据或者实现对应的功能。 因此API的调用和数据接口的访问都是做数据分析的一个常用操作&#xff0c;如何快速实现API和数据接口的调用&#xff0c;网上一般提供很多语言版本&#…...

Web自动化测试-掌握selenium工具用法,使用WebDriver测试Chrome/FireFox网页(Java

目录 一、在Eclipse中构建Maven项目 1.全局配置Maven 2.配置JDK路径 3.创建Maven项目 4.引入selenium-java依赖 二、Chrome自动化脚本编写 1.创建一个ChromeTest类 2.测试ChromeDriver 3.下载chromedriver驱动 4.在脚本中通过System.setProperty方法指定chromedriver的…...

maven多模块项目搭建

文章目录 创建方式创建父项目创建子模块 目录结构示例父模块模块A模块B&#xff08;并在模块B中引入模块A&#xff09; 注意事项 创建方式 创建父项目 #创建文件夹后&#xff0c;进入目录&#xff0c;执行以下命令 PS D:\demo> mvn archetype:generate #将输出很多模板&am…...

PostgreSQL的视图pg_tables

PostgreSQL的视图pg_tables pg_tables 是 PostgreSQL 中的一个系统视图&#xff0c;用于显示当前数据库中所有用户定义的表的信息。这个视图提供了关于表的名称、所属模式&#xff08;schema&#xff09;、所有者以及表类型等详细信息。 pg_tables 视图的主要列 列名类型描述…...

Stable diffusion采样器详解

在我们使用SD web UI的过程中&#xff0c;有很多采样器可以选择&#xff0c;那么什么是采样器&#xff1f;它们是如何工作的&#xff1f;它们之间有什么区别&#xff1f;你应该使用哪一个&#xff1f;这篇文章将会给你想要的答案。 什么是采样&#xff1f; Stable Diffusion模…...

为什么要进行渗透测试?

渗透测试的重要性 渗透测试是一种安全评估技术&#xff0c;旨在模拟黑客攻击&#xff0c;发现和利用系统漏洞&#xff0c;以评估企业信息系统的安全性。以下是进行渗透测试的几个主要原因&#xff1a; 1.发现潜在的漏洞和安全风险&#xff1a;渗透测试可以模拟真实的攻击行为…...

后方碰撞预警系统技术规范(简化版)

后方碰撞预警系统技术规范(简化版) 1 系统概述2 预警区域3 预警目标4 功能需求功能条件5 显示需求6 指标需求1 系统概述 后方碰撞预警系统RCW(Rear Collision Warning)是在后方车辆即将与自车发生碰撞之前,激活危险警告灯以较高频率闪烁,从而吸引后方驾驶员的注意力,避免…...

Position定位

Position定位 CSS中position属性是比较常用的元素定位方案&#xff0c;position常用的取值有static、relative、absolute、fixed、sticky、inherit。 static static属性是HTML元素的默认值&#xff0c;即没有定位&#xff0c;遵循正常的文档流对象&#xff0c;对于top、bott…...

npm install 的原理

1. 执行命令发生了什么 &#xff1f; 执行命令后&#xff0c;会将安装相关的依赖&#xff0c;依赖会存放在根目录的node_modules下&#xff0c;默认采用扁平化的方式安装&#xff0c;排序规则为&#xff1a;bin文件夹为第一个&#xff0c;然后是开头系列的文件夹&#xff0c;后…...

基于I2C协议的OLED显示(利用U82G库)

目录 一、I2C协议 1、了解I2C协议的基本原理和时序协议 基本原理 时序协议 2、掌握0.96寸OLED屏的工作原理&#xff0c;汉字点阵显示原理 OLED 工作原理 汉字点阵显示原理 3、掌握开源GUI库U82G在stm32上的移植编译方法&#xff0c;以及图形界面可视化技术。 二、具体…...

【文末附gpt升级秘笈】探索AGI之路:穿越大模型的冰与火,谱写未来技术的乐章

探索AGI之路&#xff1a;穿越大模型的冰与火&#xff0c;谱写未来技术的乐章 摘要 随着人工智能技术的飞速发展&#xff0c;大模型成为了业界关注的焦点。然而&#xff0c;大模型并非万能&#xff0c;其背后隐藏着诸多迷思与挑战。本文基于“AGI技术50人”访谈栏目的素材&…...

国内12寸先进封装厂家的一些情况

一、12寸先进封装厂家 在中国大陆&#xff0c;专注于12英寸&#xff08;300mm&#xff09;晶圆的先进封装技术的企业包括但不限于以下几家&#xff1a; 1. 长电科技&#xff08;JCET Technologies Co., Ltd.&#xff09;&#xff1a;长电科技是中国领先的半导体封装测试企业之…...

ViGEmBus虚拟控制器驱动架构深度解析与高级配置实战指南

ViGEmBus虚拟控制器驱动架构深度解析与高级配置实战指南 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus ViGEmBus作为Windows内核模式虚拟控制器驱动&#x…...

命令行玩转JUnit测试:Linux环境配置+批量执行技巧(JDK8/JUnit4.12)

命令行玩转JUnit测试&#xff1a;Linux环境配置批量执行技巧&#xff08;JDK8/JUnit4.12&#xff09; 在持续集成和DevOps实践中&#xff0c;服务器环境下的自动化测试执行能力直接影响交付效率。本文将深入讲解如何在Linux服务器上搭建无IDE的JUnit测试环境&#xff0c;解决依…...

Flink CDC实战:如何解决Oracle LogMiner每小时60G日志下的性能瓶颈与延迟问题

Flink CDC实战&#xff1a;突破Oracle LogMiner高负载场景的性能优化全攻略 当Oracle数据库每小时产生60GB归档日志时&#xff0c;传统单线程LogMiner解析方案往往陷入性能泥潭。本文将揭示一套经过生产验证的并发LogMiner解析架构&#xff0c;通过智能SCN切分、动态线程池和Re…...

使用Docker部署Qwen3-TTS语音生成服务

使用Docker部署Qwen3-TTS语音生成服务 1. 引言 语音合成技术正在改变我们与机器交互的方式&#xff0c;而Qwen3-TTS作为开源领域的佼佼者&#xff0c;提供了高质量的语音生成能力。传统的部署方式往往需要复杂的环境配置和依赖安装&#xff0c;这让很多开发者望而却步。 Doc…...

物联网核心传感器技术详解与应用

1. 物联网系统中的关键传感器技术解析1.1 传感器在物联网中的核心作用现代物联网系统通过各类传感器实现物理世界与数字世界的连接。这些设备能够检测环境参数变化&#xff0c;并将采集到的模拟信号转换为数字数据&#xff0c;通过有线或无线网络传输至云端或本地处理单元。在工…...

计算对方预测位置与本方偏差

航天器交会 分布式MPC在近地轨道上实现两个航天器的精准交会&#xff0c;就像让两枚子弹在千米外相撞——不仅要算准弹道&#xff0c;还要实时应对各种扰动。传统集中式控制需要把所有计算放在地面站&#xff0c;延迟和通讯瓶颈让人头秃。这时候分布式模型预测控制&#xff08;…...

COMSOL中BIC多极解分(多极展开)复现:周期性结构通用解法探索

COMSOL中BIC的多极解分&#xff08;多极展开&#xff09;复现&#xff1a; 周期性结构通用&#xff0c;公式内嵌的comsol中&#xff0c;直接不需要matlab即可得到对应极子和三个方向的散射截面。 下图是以四聚体周期性结构为例&#xff0c;仿真复现结果和文献相吻合。 内含透射…...

python-数字中药材资源共享平台vue

目录需求分析与架构设计前端实现&#xff08;Vue 3 TypeScript&#xff09;后端实现&#xff08;Python&#xff09;数据库设计开发与测试流程部署方案关键代码示例&#xff08;FastAPI Vue&#xff09;注意事项项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博…...

如何在10分钟内掌握SASM:终极汇编语言开发环境完整指南

如何在10分钟内掌握SASM&#xff1a;终极汇编语言开发环境完整指南 【免费下载链接】SASM SASM - simple crossplatform IDE for NASM, MASM, GAS and FASM assembly languages 项目地址: https://gitcode.com/gh_mirrors/sa/SASM SASM&#xff08;SimpleASM&#xff09…...

新手上路:用Realsense Viewer和Rviz快速验证你的Intel L515相机(从插上USB3.0到看到点云)

新手上路&#xff1a;用Realsense Viewer和Rviz快速验证你的Intel L515相机 刚拿到Intel RealSense L515激光雷达相机时&#xff0c;最迫切的需求往往是快速确认设备能否正常工作。本文将带你跳过复杂的配置流程&#xff0c;直接进入**"插电即用"**的验证阶段。无论你…...