上午没课,学了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。