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

C语言数据类型与变量

一、数据类型1.字符型char2.整形short 【int】intlong 【int】long long 【int】3.浮点型floatdoublelong double4.布尔型(使用需要包含头文件stdbool.h)_Bool取值为true或false5.各种数据类型的长度需要用到sizeof操作符sizeof 是⼀个关键字也是操作符专⻔是⽤来计算 sizeof 的操作符数的类型⻓度的单位是字节sizeof 操作符的操作数可以是类型也可是变量或者表达式sizeof( 类型 ) sizeof 表达式1sizeof后面跟的不是类型而是表达式的时候可以省略后面的括号2表达式不参与真实的运算只根据类型得出大小3计算结果的类型为size_t4sizeof中的表达式不计算sizeof 在代码进⾏编译的时候就根据表达式的结果的类型推到并确定了类型的⻓度⽽表达式 真要被执⾏却要在程序运⾏期间才会发⽣如果在编译期间已经将 sizeof 处理掉了所以在运⾏ 期间就不会执⾏表达式了提醒sizeof 运算符的返回值C语⾔只规定是⽆符号整数并没有规定具体的类型⽽是留给 系统⾃⼰去决定 sizeof 到底返回什么类型。不同的系统中返回值的类型有可能是 unsigned int 也有可能是 unsigned long 甚⾄是 unsigned long long 对应的 printf() 占位符分别是 %u 、 %lu 和 %llu 。这样不利于程序的可移植性。 C语⾔提供了⼀个解决⽅法创造了⼀个类型别名 size_t ⽤来统⼀表⽰ sizeof 的返 回值类型。对应当前系统的 sizeof 的返回值类型可能是 unsigned int 也可能是 unsigned long long 。各数据类型的长度#include stdio.h int main() { printf(%zd\n, sizeof(char));//1 printf(%zd\n, sizeof(_Bool));//1 printf(%zd\n, sizeof(short));//2 printf(%zd\n, sizeof(int));//4 printf(%zd\n, sizeof(long));//4 printf(%zd\n, sizeof(long long));//8 printf(%zd\n, sizeof(float));//4 printf(%zd\n, sizeof(double));//8 printf(%zd\n, sizeof(long double));//在vs上是8个字节在gcc上测试是16 return 0; }二、signed和unsignedC语⾔使⽤ signed 和 unsigned 关键字修饰字符型和整型类型的。 signed 关键字表⽰⼀个类型带有正负号包含负值 unsigned 关键字表⽰该类型不带有正负号只能表⽰零和正整数。 对于 int 类型默认是带有正负号的也就是说 int 等同于 signed int 。(1)整数变量声明为 unsigned 的好处是同样⻓度的内存能够表⽰的最⼤整数值增⼤了⼀倍。(2)unsigned int中的int可以省略(3)字符类型char也可以设置signed和unsigned但C语⾔规定 char 类型默认是否带有正负号由当前系统决定三、数据类型的取值范围为了代码的可移植性需要知道某种整数类型的极限值时应该尽量使⽤这些常量。• SCHAR_MIN SCHAR_MAX signed char 的最⼩值和最⼤值。• SHRT_MIN SHRT_MAX short 的最⼩值和最⼤值。• INT_MIN INT_MAX int 的最⼩值和最⼤值。• LONG_MIN LONG_MAX long 的最⼩值和最⼤值。• LLONG_MIN LLONG_MAX long long 的最⼩值和最⼤值。• UCHAR_MAX unsigned char 的最⼤值。• USHRT_MAX unsigned short 的最⼤值。• UINT_MAX unsigned int 的最⼤值。• ULONG_MAX unsigned long 的最⼤值。• ULLONG_MAX unsigned long long的最⼤值。四、变量1.变量的创建规则数据类型变量名变量命名的⼀般规则• 只能由字⺟包括⼤写和⼩写、数字和下划线_组成。• 不能以数字开头。• ⻓度不能超过63个字符。• 变量名区分⼤⼩写。• 变量名不能使⽤关键字。变量在创建的时候就给一个初始值叫做初始化2.变量的分类全局变量在⼤括号外部定义的变量就是全局变量 全局变量的使⽤范围更⼴整个⼯程中想使⽤都是有办法使⽤的。局部变量在⼤括号内部定义的变量就是局部变量 局部变量的使⽤范围是⽐较局限只能在⾃⼰所在的局部范围内使⽤的如果局部变量和全局变量名称相同则优先使用局部变量3.变量的存放1. 局部变量是放在内存的栈区2. 全局变量是放在内存的静态区3. 堆区是⽤来动态内存管理的五、算数操作符指的是 - * / % 这些操作符都是双⽬操作符也被叫做运算符1与-对应加减法2*对应乘法3/对应除法但是如果除号的两端都是整数则只执行整数除法得到的结果为整数int a6; int b4; int ca/b;//结果为1 //若想要运算结果为浮点型除号两端至少有一个数为浮点型4%对应求模运算只能用于整数负数的求模规则符号由运算符前面的那个数字来定六、赋值操作符在变量创建的时候给⼀个初始值叫初始化在变量创建好后再给⼀个值这叫赋值int a100;//初始化 b200;//赋值1.连续赋值从右往左依次赋值不建议连续赋值不易于理解2.复合赋值符 - * / % | ^七、单目操作符 -- -(负) 正1.前置/--先1/-1再使用2.后置/--先使用后1/-1八、强制类型转换使用方法类型九、scanf和printf介绍1.printf用法略1占位符%a ⼗六进制浮点数字⺟输出为⼩写。• %A ⼗六进制浮点数字⺟输出为⼤写。• %c 字符。//char• %d ⼗进制整数有符号的10进制整数。//int• %e 使⽤科学计数法的浮点数指数部分的 e 为⼩写。• %E 使⽤科学计数法的浮点数指数部分的 E 为⼤写。• %i 整数基本等同于 %d 。• %f ⼩数包含 float 类型和 double 类型。//float -%f double-%lf• %g 6个有效数字的浮点数。整数部分⼀旦超过6位就会⾃动转为科学计数法指数部分的 e 为⼩写。• %G 等同于 %g 唯⼀的区别是指数部分的 E 为⼤写• %hd ⼗进制 short int 类型。• %ho ⼋进制 short int 类型。• %hx ⼗六进制 short int 类型。• %hu unsigned short int类型。• %ld ⼗进制 long int 类型。• %lo ⼋进制 long int类型。• %lx ⼗六进制 long int类型。• %lu unsigned long int 类型。• %lld ⼗进制 long long int 类型。• %llo ⼋进制 long long int 类型。• %llx ⼗六进制 long long int 类型。• %llu unsigned long long int 类型。• %Le 科学计数法表⽰的long double类型浮点数。• %Lf long double 类型浮点数。• %n 已输出的字符串数量。该占位符本⾝不输出只将值存储在指定变量之中。• %o ⼋进制整数。• %p 指针⽤来打印地址。• %s 字符串。• %u ⽆符号整数unsigned int。• %x ⼗六进制整数。• %zd size_t 类型。• %% 输出⼀个百分号。2输出格式限定宽度printf(%5d,123);%5d表示这个占位符宽度至少为5若不满5个前面自动添加空格输出默认是右对齐printf(-%5d,123);此为左对齐对于小数小数的默认精度为小数点后六位printf(%12f,123.45);上述式子的输出结果前面有两个空格3%可以确保输出的值总是带有正负号4可以限定小数的位数如“%.2f”限定小数只有两位可以与限定宽度的占位符同时使用最⼩宽度和⼩数位数这两个限定值都可以⽤ * 代替通过 printf() 的参数传⼊。如printf(%*.*f\n, 6, 2, 0.5);5输出部分字符串形式%.[m]s 其中[m]表示一个数字2.scanf基础用法略1变量前⾯必须加上 运算符指针变量除外因为 scanf() 传递的不是值⽽是地址 即将变量 i 的地址指向⽤⼾输⼊的值。 如果这⾥的变量是指针变量⽐如字符串变量那就不⽤加 运算符2当scanf处理多个输入时scanf() 处理数值占位符时会⾃动过滤空⽩字符包括空格、制表符、换⾏符等。所以⽤⼾输⼊的数据之间有⼀个或多个空格不影响 scanf() 解读数据。另外⽤⼾使⽤回⻋键将输⼊分成⼏⾏也不影响解读3scanf() 处理⽤⼾输⼊的原理是⽤⼾的输⼊先放⼊缓存等到按下回⻋键后按照占位符对缓存 进⾏解读。 解读⽤⼾输⼊时会从上⼀次解读遗留的第⼀个字符开始直到读完缓存或者遇到第⼀个不符合条 件的字符为⽌// ⽤⼾输⼊ -13.45e12# 0 scanf(%d, x); printf(%d\n, x); scanf(%f, y); printf(%f\n, y);如上述例子第一次读取读取到-13第二次读取.45e12但第二次打印的结果可能与实际结果不一致这是因为小数在储存的时候不精确再乘上e12将误差放大了很多4scanf() 的返回值是⼀个整数表⽰成功读取的变量个数。如果没有读取任何项或者匹配失败则返回 0 。如果在成功读取任何数据之前发⽣了读取错误或者遇到读取到⽂件结尾则返回常量EOF(-1)。EOF-end of file⽂件结束标志5按ctrlz可以提前结束输入6scanf常用的占位符与 printf() 的占位符基本⼀致• %c 字符。• %d 整数。• %f float 类型浮点数。• %lf double 类型浮点数。• %Lf long double 类型浮点数。• %s 字符串。• %[] 在⽅括号中指定⼀组匹配的字符⽐如 %[0-9] 遇到不在集合之中的字符匹配将会停⽌。上⾯所有占位符之中除了 %c 以外都会⾃动忽略起⾸的空⽩字符。 %c 不忽略空⽩字符总是返 回当前第⼀个字符⽆论该字符是否为空格占位符 %s 它其实不能简单地等同于字符串。它的规则是从当前第⼀个⾮空⽩字符开始读起直到遇到空⽩字符即空格、换⾏符、制表符等为⽌。因为 %s 不会包含空⽩字符所以⽆法⽤来读取多个单词除⾮多个 %s ⼀起使⽤。这也意味着scanf() 不适合读取可能包含空格的字符串⽐如书名或歌曲名。另外 scanf() 遇到 %s 占位符会在字符串变量末尾存储⼀个空字符 \0scanf() 将字符串读⼊字符数组时不会检测字符串是否超过了数组⻓度。所以储存字符串时很可能会超过数组的边界导致预想不到的结果。为了防⽌这种情况使⽤ %s 占位符时应该指定读⼊字符串的最⻓ 度即写成 %[m]s 其中的 [m] 是⼀个整数表⽰读取字符串的最⼤⻓度后⾯的字符将被丢弃。3.赋值忽略符只要把 * 加在任何占位符的百分号后⾯该占位符就不会返回值解析后将被丢弃

相关文章:

C语言数据类型与变量

一、数据类型1.字符型char2.整形short 【int】intlong 【int】long long 【int】3.浮点型floatdoublelong double4.布尔型(使用需要包含头文件<stdbool.h>)_Bool取值为true或false5.各种数据类型的长度需要用到sizeof操作符sizeof 是⼀个关键字&#xff0c;也是操作符&am…...

专为视障人士设计的免费辅助工具

软件介绍 NVDA是一款免费的屏幕阅读器&#xff0c;专门为视障人士设计。它通过语音合成和盲文显示两种方式&#xff0c;帮助视障人士实现对电脑的无障碍操作&#xff0c;缩小数字鸿沟。 轻量化与基础操作 软件是绿色版&#xff0c;无需安装&#xff0c;双击"nvda.exe&qu…...

元组、列表、集合、字典和切片

列表&#xff08;List&#xff09;列表是可变的有序序列&#xff0c;元素可重复&#xff0c;用方括号 [] 定义。支持增删改查操作。案例fruits ["apple", "banana", "cherry"] fruits.append("orange") # 添加元素 fruits[1] "…...

【教学类-160-14】20260425 AI视频培训-练习014“豆包AI视频《月下枯蔷(哥特风)》+豆包图片风格:油画”

20260425 《014月下枯蔷&#xff08;哥特风&#xff09;》风格&#xff1a;油画背景需求 选了哥特风格故事脚本 豆包故事脚本 只有画面&#xff0c;没有图片关键词、图片转视频动态关键词 内容有点长&#xff0c;我要控制在10秒一个镜头 很好只有10秒一个镜头了。 写一个故事名…...

抖音无水印视频下载终极指南:3分钟掌握免费高清资源获取秘籍

抖音无水印视频下载终极指南&#xff1a;3分钟掌握免费高清资源获取秘籍 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback…...

学Simulink——基于Simulink的电池热管理系统(BTMS)多目标优化​

目录 手把手教你学Simulink——基于Simulink的电池热管理系统&#xff08;BTMS&#xff09;多目标优化​ 摘要​ 一、背景与挑战​ 1.1 为什么电池越快充&#xff0c;温差越容易“失控”&#xff1f;​ 1.2 核心痛点与设计目标​ 二、系统架构与核心控制推导​ 2.1 整体架…...

DLSS Swapper终极指南:三步实现游戏DLSS智能管理,告别手动替换烦恼

DLSS Swapper终极指南&#xff1a;三步实现游戏DLSS智能管理&#xff0c;告别手动替换烦恼 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 你是否曾经为了提升游戏帧率&#xff0c;在数十个游戏目录中手动寻找并替换DL…...

Driver Store Explorer:Windows系统驱动管理的终极解决方案

Driver Store Explorer&#xff1a;Windows系统驱动管理的终极解决方案 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 你是否曾为Windows系统盘空间不断减少而烦恼&#xff1f;是否发现…...

基于Simulink的电池热管理系统(BTMS)多目标优化​

目录 手把手教你学Simulink——基于Simulink的电池热管理系统(BTMS)多目标优化​ 摘要​ 一、背景与挑战​ 1.1 为什么电池越快充,温差越容易“失控”?​ 1.2 核心痛点与设计目标​ 二、系统架构与核心控制推导​ 2.1 整体架构:从“盲目制冷”到“多目标运筹帷幄”的…...

2026北航计算机学院保研硕士预推免面经

2026年开始北航计算机学院全面取消了夏令营&#xff0c;最终保研的录取资格全由预推免决定。而作为经典的强com院校&#xff0c;北航的预推免延续了前夏令营的节奏&#xff0c;即考核通过才有机会在保研时录取。一、日程9.18 上午报道心理健康测评 下午机试&#xff08;如需要&…...

FAQ 数据库MySQL与SQLite选择与切换

Skeyevss FAQ&#xff1a;数据库 MySQL 与 SQLite 选择与切换 试用安装包下载 | SMS | 在线演示 项目地址&#xff1a;https://github.com/openskeye/go-vss 1. 何时用 SQLite 适合&#xff1a;单机试用、开发本机、小规模验证。优点是无独立数据库进程、部署简单&#xff1…...

工业PHP网关性能瓶颈诊断手册(CPU飙高98%、MQTT丢包率超12%的17个真实故障根因)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;工业PHP网关性能瓶颈诊断手册&#xff08;CPU飙高98%、MQTT丢包率超12%的17个真实故障根因&#xff09; 工业PHP网关常被部署于边缘计算节点&#xff0c;承担协议转换、设备接入与实时数据路由等关键任…...

CaTok:基于因果标记化的图像序列建模新方法

1. 项目概述&#xff1a;重新定义图像序列建模的因果边界在计算机视觉与序列建模的交叉领域&#xff0c;图像标记化&#xff08;Image Tokenization&#xff09;一直是连接像素空间与离散表示的关键桥梁。传统方法如ViT的1616分块策略虽然简单高效&#xff0c;却忽视了图像序列…...

如何用LeagueAkari智能工具集提升英雄联盟游戏效率的完整指南

如何用LeagueAkari智能工具集提升英雄联盟游戏效率的完整指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit LeagueAkari是一款基于英雄联盟官…...

【PHP 8.9类型系统终极指南】:Strict Type Enforcement如何将运行时错误拦截在编译前?

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;PHP 8.9类型系统严格校验的演进与定位 PHP 8.9 并非官方发布的正式版本&#xff08;截至 PHP 官方最新稳定版为 8.3&#xff09;&#xff0c;但作为社区广泛讨论的“假想演进节点”&#xff0c;它承载了…...

量子编译框架QClaw:模块化设计与硬件感知优化实践

1. 项目概述与核心价值最近在量子计算的开源社区里&#xff0c;一个名为QuantumClaw/QClaw的项目引起了我的注意。这个名字本身就很有意思&#xff0c;“Quantum”指向了其核心领域——量子计算&#xff0c;而“Claw”则暗示了某种抓取、操控或接口的能力。简单来说&#xff0c…...

十大Web安全扫描工具

十大Web安全扫描工具 扫描程序可以在帮助造我们造就安全的Web站点上助一臂之力&#xff0c;也就是说在黑客“黑”你之前&#xff0c;先测试一下自己系统中的漏洞。我们在此推荐10大Web漏洞扫描程序&#xff0c;供您参考。 Nikto 这是一个开源的Web服务器扫描程序&#xff0c;它…...

基于炬芯ATS2825音响系统开发

基于炬芯ATS2825音响系统开发...

《每日一命令15:du——深度分析磁盘占用》

本期摘要du 是 Linux 下分析磁盘占用最直接的命令&#xff0c;与 df 互补&#xff1a;df 看分区整体&#xff0c;du 看具体目录/文件。掌握 du -sh&#xff08;汇总目录大小&#xff09;、du -sh *&#xff08;列出子目录&#xff09;、du -h --max-depth1&#xff08;限制深度…...

《100个“反常识”经验15:Nginx 502排查:从应用到内核》

本期摘要502 Bad Gateway 是 Nginx 最让人头疼的错误码之一。它不像 404 那样明确&#xff08;文件不存在&#xff09;&#xff0c;而是表示“上游服务器返回了无效响应”。本文从一次真实故障切入&#xff0c;按“客户端 → Nginx → 应用 → 数据库”的链路分层排查&#xff…...

FastHMR:基于Transformer与扩散模型的高效人体网格恢复

1. 项目背景与核心价值人体网格恢复&#xff08;Human Mesh Recovery&#xff09;是计算机视觉领域的重要研究方向&#xff0c;其目标是从单张RGB图像中重建出具有三维几何信息的人体模型。传统方法通常依赖复杂的优化流程或级联网络&#xff0c;而FastHMR通过融合Transformer架…...

扩散模型文本条件生成机制与调制引导技术解析

1. 扩散模型中的文本条件生成机制解析扩散模型&#xff08;Diffusion Models&#xff09;作为当前生成式AI的核心架构&#xff0c;其文本条件生成能力直接影响着图像/视频生成的质量与可控性。传统实现路径主要依赖两大机制&#xff1a;1.1 注意力机制的核心作用跨注意力层&…...

代码大语言模型训练框架与优化实践

1. 项目概述"代码大语言模型训练框架与优化实践"这个标题背后&#xff0c;隐藏着当前AI领域最炙手可热的技术方向之一。作为一名在AI工程化领域摸爬滚打多年的从业者&#xff0c;我亲眼见证了从早期基于规则的系统到如今百亿参数大模型的演进历程。代码大语言模型&am…...

Sage智能体平台:从LLM到生产级自动化工作流的工程实践

1. 项目概述&#xff1a;从复杂任务到可靠交付的智能体平台如果你和我一样&#xff0c;在过去几年里深度参与过AI应用开发&#xff0c;特别是基于大语言模型&#xff08;LLM&#xff09;的智能体&#xff08;Agent&#xff09;项目&#xff0c;那你一定体会过那种“理想很丰满&…...

CtxPort:AI对话结构化剪贴板,一键导出Markdown

1. 项目概述&#xff1a;CtxPort&#xff0c;一个为AI对话而生的结构化剪贴板如果你和我一样&#xff0c;每天的工作流里充斥着与ChatGPT、Claude、Gemini等AI助手的深度对话&#xff0c;那你一定也经历过这种痛苦&#xff1a;花了半小时讨论出一个绝妙的架构设计&#xff0c;或…...

Dify实战:我把公司内部Wiki变成了一个能对话的AI助手(附详细配置与踩坑记录)

Dify实战&#xff1a;我把公司内部Wiki变成了一个能对话的AI助手&#xff08;附详细配置与踩坑记录&#xff09; 每次新员工入职&#xff0c;总能看到他们在公司Wiki里迷路的样子——像走进了一个没有地图的图书馆。技术文档散落在十几个目录里&#xff0c;产品需求藏在三年前的…...

LLM评估准则偏差解析与优化实践

1. LLM评估准则偏差现象的本质解析在大型语言模型(LLM)的评估与对齐流程中&#xff0c;评估准则(rubrics)作为评判模型输出的标准框架&#xff0c;其设计质量直接影响着下游策略的优化方向。传统观点往往将评估准则视为静态的"度量尺"&#xff0c;但我们的实验揭示了…...

Win11Debloat:Windows系统优化工具,轻松实现高效系统清理与隐私保护

Win11Debloat&#xff1a;Windows系统优化工具&#xff0c;轻松实现高效系统清理与隐私保护 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other cha…...

深圳本地特色美食推荐有哪些,去哪里吃比较正宗?

深圳本地人私藏特色美食攻略&#xff1a;必吃款正宗店址整理 很多来深圳玩的朋友都吐槽深圳是“美食荒漠”&#xff0c;那是你没找对地方&#xff01;作为在深圳生活了8年的吃货&#xff0c;我把自己常去的正宗本地美食清单整理出来了&#xff0c;都是本地人常光顾的老店&#…...

Go分布式爬虫框架clawjob:架构解析与生产部署指南

1. 项目概述与核心价值最近在折腾一些数据采集和自动化任务时&#xff0c;发现了一个挺有意思的项目&#xff0c;叫clawjob。乍一看这个名字&#xff0c;结合它的仓库地址jackychen129/clawjob&#xff0c;就能猜到这玩意儿跟“爬虫”和“任务”脱不了干系。没错&#xff0c;它…...