【C语言】数据类型和变量【下】

发布时间:2026/8/26 15:06:32

【C语言】数据类型和变量【下】
/ 除法规则两个整数相除 → 整数除法只取商舍弃小数部分printf(%d\n, 6 / 3); //2 printf(%d\n, 6 / 4); //1只要有一边是小数浮点数就做浮点除法得到小数结果printf(%.2f\n, 6 / 4.0); //1.50 printf(%.2f\n, 6.0 / 4); //1.50 printf(%.2f\n, 6.0 / 4.0); //1.50格式符说明a%d打印int 整数b%f打印float和double默认输出小数点后 6 位c%lf输入scanf读 double 用printf输出 double 也可以用%f强制类型转换int a, b; a 5; b 2; printf(%.2f\n, a / (double)b); //2.50 printf(%d\n, a / b); //2分析代码int score 5; score (score / 20.0) * 100; printf(%d\n, score); //得25 int a 5; double res (a / 20.0) * 100; printf(%.2f\n, res); //得25.00ascore 5int 类型bscore / 20.05是 int20.0是 double发生隐式类型转换5 提升为 double5/20.00.25c0.25 * 100 25.0doubled把25.0的 double 赋值给int scoredouble → int直接截断小数部分得到整数 25浮点数赋值给 int 变量截断小数只留整数例子如下int score 5; score (score / 20) * 100;两整数相除会截断小数 5 / 20 0 然后 0 * 100 0int a 3.5; printf(%d\n, a);分析a3.5 是double 浮点数ba 是 int 整型变量c把小数赋值给 int会直接截断小数部分丢掉小数点后面所有内容只保留整数部分结论aint 只能存整数给它小数自动截断小数bdouble / float 才可以保存小数double b 3.5; printf(%.2f\n, b); //3.50重点区分a截断 ≠ 四舍五入int c 3.99; printf(%d\n, c); //3b四舍五入要使用 round() 函数需要 math.hint d round(3.88); printf(%d\n, d); //4% 取模求余数运算符64×12int ret 6 % 4; printf(%d\n, ret); //2知识点a% 只适用于整数不能用于浮点数b余数符号和被除数保持一致printf(%d, -6 % 4); // -2 printf(%d, 6 % -4); // 2连续赋值赋值运算符结合性是从右往左例子c b a 3 等价于 b a 3 ; c b知识点a初始化int a3; 创建变量同时给值b赋值a200; 变量已经存在修改里面的数据c不是数学的等于是把右边的值拷贝给左边变量d连续赋值c b a 3先算最右边表达式再从右往左逐个赋值思考题int a3,b5,c0; c (b a 3) 2; printf(%d %d,b,c);解答 括号优先先执行 ba3 ,再加2 赋值给c//连续赋值 int a 3; int b 5; int c 0; c b a 3; printf(%d\n, c); printf(%d\n, b);复合赋值运算符-*///复合赋值运算符 int a 3; printf(%d\n, a); a 3; //aa3; printf(%d\n, a); a - 3; //aa-3; printf(%d\n, a); a * 3; //aa*3; printf(%d\n, a); a / 3; //aa/3; printf(%d\n, a);自增运算符 四种自增反式int a 5; /*a a 1;*/ /*a 1;*/ /*a;*/ /*a;*/ printf(%d\n, a);后置和前置自增区别后置 a先使用旧值再自增//后置 int a 5; int b a; //先把5赋值给b,然后a再加 1 printf(a %d b %d, a, b); ba 等价与于 ba aa1前置 a先自增再使用新值// 前置 int c 5; int d c; // c先加1然后赋值给d printf(c %d d %d\n, c, d); d c 等价 cc1 dc易错经典例子面试常考int a1 5; printf(%d\n, a1); //先打印5,后a1 int b1 5; printf(%d\n, b1); //b1 先加1后打印b1总结a单独一行写 a; 或者 a;没有任何差别b放进别的表达式里面a 先用值再加a 先加再用值自减--前置-- 后置-- 区别前置--先自减再拿新值使用int a 10; int b --a; //等价 aa-1 ba //计算口诀先-- ,再使用 printf(a%d\n, a); //9 printf(b%d\n, b); //9后置 --先拿原值使用然后再自减int a1 10; int b1 a1--; // 等价 b1a1 a1a1-1 //计算口诀先使用后减1 printf(a1%d\n, a1); // 9 printf(b1%d\n, b1); // 10总结a--a 前置先减再用变量和接收值一样ba-- 后置先用再减接收的是旧值变量本身变小问题代码这是问题代码不能写这种代码int a 1; printf(%d\n, (a) (a) (a));(a)(a)(a) 属于 C 语言里的未定义行为结果是不确定的不同编译器跑出来答案不一样一元负号运算符 -功能-x 求 x 的相反数正数 → 变负数负数 → 变正数0 → 还是 0int a -10; printf(%d\n, -a);强制类型转换语法(目标类型)数值//强制类型转换 int a (int)3.14; printf(%d\n, a);转换规则C 语言强制把浮点→整数直接砍掉小数部分向零截断不是四舍五入关键点强制转换不会改变原来那个小数常量只生成一个临时值易错题对比//不会四舍五入double-int ,会保留整数丢弃小数 printf(%d\n, (int)3.99); //3 printf(%d\n, (int)-4.69); //-4printf 宽度控制右对齐%5da5最小输出宽度占 5 个字符位置b默认右对齐数字不够 5 位左边补空格如果数字本身长度 指定宽度宽度限制失效原样输出不会截断数字printf(%d\n, 123); printf(%5d\n, 123); //右对齐 printf(%5d\n, 12345); //右对齐左对齐%-5da负号-代表左对齐b占 5 格数字不够右边补空格printf(%5d\n, 12345); //右对齐 printf(%-5dhehe\n, 123);//左对齐总结易错点指定宽度只是最小宽度数字太长不会被砍掉- 只有放在宽度数字前面才代表左对齐空格是看不见的字符但是确实占用位置printf 格式化输出printf(%12f\n, 123.45); //123.450000%12fa12最小输出宽度占 12 个字符位置不够宽度左边补空格超过宽度就自动加宽不会截断bf 默认保留 6 位小数%d 加号修饰符printf(%d\n, 10); // 10 printf(%d\n, -10); // -10强制打印正负号a正数前面输出 b负数本身就带 -不受影响%.2f 保留小数//保留小数 printf(Number is %.2f\n, 5.2678); //四舍五入a.2小数点后保留2 位小数四舍五入b5.2678→ 保留两位小数 5.27%6.2f宽度 精度//精度加宽度 printf(%6.2f\n, 123456.5); //123456.50%6.2fa6最小总宽度b.2小数点后 2 位%*.*f 动态宽度、动态精度printf(%*.*f\n, 8, 2, 0.5); // 0.50(总宽度是8现有4个字符前面应该有4个空格)%*.*f*代表从参数读取宽度、精度a第一个*→ 8总宽度 8b第二个*→ 2小数位数 2c数字0.5 → 打印成 0.500.50占 4 个字符宽度要求 8 →左边补 4 个空格printf(%.3s\n, hello world);%.3sas输出字符串b.3精度代表最多打印前 3 个字符多余字符截断扔掉

相关新闻

LHDC V5 手机到耳机音乐传输链路详解

LHDC V5 手机到耳机音乐传输链路详解

2026/8/26 15:06:32

以手机本地播放 test1.mp3 通过 LHDC V5 编码传输到蓝牙耳机并播放为例,详细说明从文件到声音的完整技术链路。 LHDC V5 三部曲导航: LHDC V5 编解码流程与原理详解LHDC V5 手机到耳机音乐传输链路详解LHDC V5 算法深度解析 一、整体链路概览 ┌────…

HookPHP项目目录结构全解析:看懂9大目录,理清热插拔架构设计思路

HookPHP项目目录结构全解析:看懂9大目录,理清热插拔架构设计思路

2026/8/26 15:06:32

HookPHP项目目录结构全解析:看懂9大目录,理清热插拔架构设计思路 【免费下载链接】HookPHP HookPHP基于C扩展搭建内置AI编程的架构系统-支持微服务部署|热插拔业务组件-集成业务模型|权限模型|UI组件库|多模板|多平台|多域名|多终端|多语言-含常驻内存|前…

数据结构入门系列——顺序表详解:概念、分类与动态实现

数据结构入门系列——顺序表详解:概念、分类与动态实现

2026/8/26 15:06:32

「 每日一句 Daily Quote 」 “我这个人走得很慢,但是我从不后退。” — 亚伯拉罕林肯 文章目录前言一、线性表二、顺序表2.1 概念与结构2.2 分类2.2.1 静态顺序表2.2.2 动态顺序表三、动态顺序表的实现3.1 定义动态顺序表的结构3.2 初始化顺序表3.3 检查空间容量…

Linux --进程控制

Linux --进程控制

2026/8/26 16:06:35

进程的诞生&#xff1a;fork 与 vfork fork 函数初识 在Linux中&#xff0c;fork 是创建新进程的唯一方式&#xff08;从用户态视角看&#xff09;。它通过复制调用进程&#xff08;父进程&#xff09;来生成一个全新的进程&#xff08;子进程&#xff09;。 #include <u…

The Words in the Dictionary Are Arranged in Order: Understanding Alphabetization

The Words in the Dictionary Are Arranged in Order: Understanding Alphabetization

2026/8/26 16:06:35

&#x1f680; TL;DR – Key TakeawaysAlphabetization is the systematic arrangement of words based on the order of letters in the English alphabet (A-Z). It’s not just about memorizing A-B-C—it’s about understanding letter priority, case sensitivity, punc…

免费开源的 ncmdump:3 步把网易云 NCM 音乐转成通用 MP3

免费开源的 ncmdump:3 步把网易云 NCM 音乐转成通用 MP3

2026/8/26 16:06:35

免费开源的 ncmdump&#xff1a;3 步把网易云 NCM 音乐转成通用 MP3 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump ncmdump 是一款免费开源的本地转换小工具&#xff0c;专门把网易云 NCM 加密音乐转成通用 MP3&#xff0c;全程离线…

Wan2.2-TI2V-5B 720P视频生成本地部署完整指南

Wan2.2-TI2V-5B 720P视频生成本地部署完整指南

2026/8/26 16:06:35

Wan2.2-TI2V-5B 720P视频生成本地部署完整指南 【免费下载链接】Wan2.2-TI2V-5B Wan2.2-TI2V-5B是一款开源的先进视频生成模型&#xff0c;基于创新的混合专家架构&#xff08;MoE&#xff09;设计&#xff0c;显著提升了视频生成的质量与效率。该模型支持文本生成视频和图像生…

为什么越难解决的问题,往往越有价值?

为什么越难解决的问题,往往越有价值?

2026/8/26 16:06:35

我们经常会发现一个现象&#xff1a; 越难解决的问题&#xff0c;往往创造的价值越高。 背后当然有很多方面的原因&#xff0c;主要原因之一是这种现象其实是一种幸存者偏差&#xff0c;因为也存在着很多难解决却没有什么价值的问题&#xff0c;这些问题没有人去解决而已。例如…

多模态内容的 AI 工业化生产与 GEO 适配规范

多模态内容的 AI 工业化生产与 GEO 适配规范

2026/8/26 15:56:34

【摘要】生成式搜索的引用路径正在从纯文本网页向图片、短视频、音频等多元模态扩展&#xff0c;组织的内容生产体系若仍以文本为中心&#xff0c;将失去大量被 AI 引用的场景覆盖。围绕多模态内容的 GEO 价值、AI 驱动工业化生产链路、图文视频音频的分模态适配规范与人机协同…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/26 1:50:39

首先光是一种能量的载体和形态&#xff0c;宏观上观察到的光是由无数个微观的光量子组成的&#xff0c;每个光子在产生的瞬间&#xff0c;其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前&#xff0c;在微观层面&#xff0c;每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/26 1:49:16

1. 通话转接不是“挂断再拨号”&#xff0c;而是SIP会话的动态重定向你有没有遇到过这样的场景&#xff1a;客服坐席A正在和客户通电话&#xff0c;突然需要把这通对话无缝转给专家坐席B&#xff0c;客户完全感知不到中间的断连——既没听到忙音&#xff0c;也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/24 21:16:09

1. 为什么选择Kolla-ansible来部署单节点OpenStack&#xff1f;如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法&#xff0c;那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

Python random 模块常用函数详解:从入门到实战

Python random 模块常用函数详解:从入门到实战

2026/8/26 0:05:45

目录 1. 引言2. 准备工作3. 基础随机函数4. 序列相关函数5. 随机种子与复现6. 实战案例7. 注意事项8. 常见问题与排查9. 总结 1. 引言 摘要&#xff1a; 本文系统介绍 Python 标准库 random 模块中最常用的随机数生成函数。内容涵盖基础随机函数&#xff08;random()、unifor…

Hermes接入团队协作后,我推翻了三个效率假设

Hermes接入团队协作后,我推翻了三个效率假设

2026/8/26 0:05:45

聊《Hermes真能提效吗&#xff1f;先看流程里最慢的那一步》之前&#xff0c;先说一句实在的&#xff1a;别急着背概念&#xff0c;先看它在真实项目里到底解决什么问题。摘要团队把 Hermes 接进项目三个月后&#xff0c;交付速度没有提升反而慢了。复盘后发现&#xff0c;最先…

免费AI大模型调教指南:打造专属网文写作助手

免费AI大模型调教指南:打造专属网文写作助手

2026/8/26 0:05:45

1. 先搞清楚“AI小说扩展模式”到底能帮你做什么如果你是一个刚开始写网文、或者卡在L3级别以下的作者&#xff0c;最头疼的可能是情节推进不下去、人物对话干瘪&#xff0c;或者世界观设定不够丰满。自己对着空白文档硬憋&#xff0c;效率很低。这时候&#xff0c;一个能理解你…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/22 2:02:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具&#xff0c;覆盖选题构思、文献整理、内容生成、格式排版等核心场景&#xff0c;真正帮你高效搞定论文难题。 一、全流程王者&#xff1a;一站式搞定论文全链路&#xff08;一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/22 4:13:47

2026年真正好用的AI论文工具&#xff0c;核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测&#xff0c;千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队&#xff0c;覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/22 1:32:34

告别游戏崩溃&#xff1a;XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…