鱼C论坛

 找回密码
 立即注册

2023-12-27

已有 56 次阅读2023-12-27 09:47 |个人分类:c语言

上午没课,学了10个单词,就开始学c

今天看到一段代码好巧妙,第16行代码
在`num = num * 10 + (ch - '0')`这行代码中,`(ch - '0')`的作用就是将字符`ch`转换为对应的数字值。
比如说ch = 3 ;对应Acsll的51 在减去 '0' = 48,就等于3 。num 累加
1. 第一次循环,读取到字符'1',`(ch - '0')`的结果是1,然后执行 `num = num * 10 + (ch - '0')`,即 `num = 0 * 10 + 1`,此时`num`的值变为1。
2. 第二次循环,读取到字符'2',`(ch - '0')`的结果是2,然后执行 `num = num * 10 + (ch - '0')`,即 `num = 1 * 10 + 2`,此时`num`的值变为12。
3. 第三次循环,读取到字符'3',`(ch - '0')`的结果是3,然后执行 `num = num * 10 + (ch - '0')`,即 `num = 12 * 10 + 3`,此时`num`的值变为123。



路过

鸡蛋

鲜花

握手

雷人

全部作者的其他最新日志

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-5 12:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

返回顶部