新闻详情

新闻详情

首页 / 资讯中心 / 详情

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

发布时间:2026/9/3 2:38:15来源:尧图网络
【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 个字符多余字符截断扔掉
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

会话级动态表单渲染与实时校验联动 2026/9/4 0:31:48

会话级动态表单渲染与实时校验联动

会话级动态表单渲染与实时校验联动 在复杂 Agent 交互中,纯文本对话往往无法胜任高精度、多字段的业务参数录入。比如订机票、填写运维工单或配置数据看板时,如果大模型一段一段地追问用户“您的出发时间是哪天?”、“您需要几张票&#xff1…

阅读更多 →
伊顿数据中心固态变压器:AI算力时代供配电架构的范式跃迁 2026/9/4 0:31:48

伊顿数据中心固态变压器:AI算力时代供配电架构的范式跃迁

数据中心正经历一场前所未有的电力挑战。GPU集群的功耗密度以每两年翻番的速度攀升,单机架功率从传统的5-10kW飙升至40kW甚至100kW以上,传统供配电架构的多级变换损耗、庞大的占地空间以及毫秒级响应能力的不足,已成为制约AI算力部署的物理瓶…

阅读更多 →
用Wan3.0制作30秒广告:从分镜脚本到成片的完整工作流 2026/9/4 0:31:48

用Wan3.0制作30秒广告:从分镜脚本到成片的完整工作流

商业广告不可能靠一条随机的短视频拼凑出来。30 秒不算长,但留给每个镜头的有效信息反而非常紧:文案、画面、字幕、配音、音乐、转场都要为同一个卖点服务。用 Wan3.0 做广告内容时,最常被低估的问题不是单个镜头生成得“像不像”&#xff0c…

阅读更多 →
Dify工作流YAML模板库:160+案例解析与实战应用指南 2026/9/4 0:31:48

Dify工作流YAML模板库:160+案例解析与实战应用指南

简介:本资源为面向Dify低代码AI应用开发者的160余个可直接导入的工作流模板集合,适用于内容创作、教育出版、知识管理及自动化数据处理等多场景,尤其适合不熟悉编程但希望快速搭建智能工作流的运营、教育者与中小企业技术实践者。压缩包含109…

阅读更多 →
UE5游戏开发实战:构建RTS资源采集闭环系统 2026/9/4 0:28:48

UE5游戏开发实战:构建RTS资源采集闭环系统

很多刚开始研究 UE5 RTS 的同学,通常会把第一个 Demo 放在“单位移动”和“兵种战斗”上,结果做到中期才发现:真正把整个玩法串起来的,其实是资源采集这一条非常基础又非常容易被小看的链路。单位走到矿脉、采集、带回基地、更新 …

阅读更多 →
Claude API工程化:从Prompt Eval到稳定运行的关键链路 2026/9/4 0:28:48

Claude API工程化:从Prompt Eval到稳定运行的关键链路

Claude Certified Architect 这套前置课程里,最容易被低估的其实不是 API 怎么调,而是 Part 5 这条从 Prompt Eval 到 Running 的完整链路。很多人拿到 Claude API 之后,第一件事就是复制一个示例请求跑通,然后以为结束了。但真正…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞