翁恺C语言程序设计:学习笔记3

  • 取余取整

    在进行时间(小时:分钟)减法:

    1. 首先将两个时间都化成分钟形式,取差
    2. 差/60=取整后的小时
    3. 差%60=取余后的分钟
  • 复合赋值

    total += 5
    

    C语言在设计之初有一个理念:作为底层编程语言,要能够用C语言表达出机器语言的所有指令,就是说,如果机器语言有一种指令而C语言没法通过编译之后直接产生,这样是不合格的。

    +=-=这种,在机器语言中是有一条直接对应的,所以在C语言中就设计了这么一种复合赋值语言。

  • 递增递减运算符

    ++--单目运算符(即只有一个算子),且算子必须是变量。作用是给这个变量加1减1.

    1. 前缀形式

      运算符放在变量(算子)的前面。

      ++a的值是加了1之后的值
      

      此时++a是一个表达式,返回加了1之后的值;

      这个表达式连带有一个副作用,就是把a这个变量的值加了1

    2. 后缀形式

      运算符放在变量(算子)的后面。

      a++的值(这个表达式的值)是加了1之前的值
      

    与复合赋值一样,++--也有其历史背景,因为机器语言有两条指令:INCDEC

  • 判断结构

  • if-elseswitch-case区别

    两者实现的功能其实是一样的,但是if-else是顺序一个个执行所有的if判断,如果很不巧,要到最后一个判断语句才成立,这样的话整个程序就全部运行一遍,造成时间上的浪费;

    而switch-case模式就是直接跳到符合的条件上,只要运行一次,节省开销。

    switch (控制表达式){   // 控制表达式只能是整数型
        case 常量:   // 常量可以是常数,也可以是常数计算的表达式
            语句
        case 常量:
            语句
    }
    

    switch进入符合的case之后,一直顺序向下运行,直到遇到break退出程序。

    switch是一个入口,而if-else是一种划分。

  • 代码规范

    if-else中尽量每段语句加*{}*;

    if-else中尽量只用一个出口;

  • 循环结构

  • do-while

    while,是先判断,后进循环体;

    do-while,先进循环体,后判断;

  • whilefor循环的区别

    *while*是限定一个条件,计算代码块,循环的格式是在代码块(循环体)中确定的,即循环体中要有改变条件的机会

    *for*直接定义好循环的格式,每次都执m行相同的代码块,

  • 跳出循环结构
    1. break

      只针对当前一层循环,跳到这个for循环的后面;

    2. continue

      只针对当前一层循环,跳过这层循环的这一次循环;

    3. goto

      从多层嵌套循环,直接跳出到out:那里

  • 有关程序的思考

  • 程序的本质

    写程序不是写关系,而是写动作。

  • 写程序的流程
    1. 程序需要用到什么数据类型;输入、中间量、输出
    2. 确定逻辑动作
  • References

  1. 翁恺, C语言程序设计, B站 : 3 - 6.0.7
发布了753 篇原创文章 · 获赞 1021 · 访问量 54万+

猜你喜欢

转载自blog.csdn.net/The_Time_Runner/article/details/103794167