C语言进阶(二):循环分支

    科技2022-07-16  135

    目录

    一、分支语句

    1、if语句分析

    2、switch语句分析

    3、小结

    二、循环语句

    1、do , while, for的区别

    2、break和continue的区别

     3、小结

    三、goto 和 void分析

    1、遭人遗弃的goto

    2、void修饰函数返回值和参数

    3、不存在void变量

    4、小贴士

    5、void指针的意义

    6、小结


    一、分支语句

    1、if语句分析

    if语句中零值比较的注意点    - bool型变量应该直接出现于条件中,不要进行比较;    - 变量和0值比较时,0值应该出现在比较符号左边;    - float型变量不能直接进行0值比较,需要定义精度;(虽然定义的是0.0,但是在内存里可能是0.0000001

    2、switch语句分析

    (1)case语句中的值只能是整型或字符型 (2)case语句的排列顺序         -按字母或数字顺序排列各条语句         -正常情况放在前面,异常情况放在后面        - default语句只用于处理真正的默认情况

    3、小结

    if语句适用于复杂逻辑进行判断的情形中switch语句适用于对离散值进行判断的情形中if语句和switch语句在功能上可以相互替换if语句对于“按片”分支判断的情形更加简洁switch语句对于多分支判断的情形更加简洁

    二、循环语句

    1、do , while, for的区别

    - do语句先执行后判断,循环体至少执行一次 - while语句先判断后执行,循环体可能不执行 - for语句先判断后执行,相比while更简洁

    2、break和continue的区别

    - break表示终止循环的执行; - continue表示终止本次循环,进入下次循环执行;

     3、小结

    for循环先进行判断再进入循环体for循环适合于循环次数固定的场合while循环先进行判断再进入循环体执行while循环适合于循环次数不定的场合do ... while循环先执行循环体再进行条件判断do ... while循环至少执行一次循环体  

    三、goto 和 void分析

    1、遭人遗弃的goto

    高手潜规则:禁用goto 项目经验:程序质量与goto的出现次数成反比 最后的判决:将goto打入冷宫

    2、void修饰函数返回值和参数

    如果函数没有返回值,那么应该将其声明为void如果函数没有参数,应该声明其参数为void

    void修饰函数返回值和参数是为了表示“无”

    以上程序编译正常,未指定类型,就默认int类型,就认为无限多的int类型入参。

    3、不存在void变量

    一C语言没有定义void究竟是多大内存的别名。没有void的标尺,无法在内存中裁剪出void对应的变量。 指针默认是4/8字节。

    4、小贴士

    - ANSI C:标准C语言的规范; - 扩展  C:在ANSI C的基础上进行了扩充;

    5、void指针的意义

    - C语言规定只有相同类型的指针才可以相互赋值; - void* 指针作为左值用于“接收”任意类型的指针; - void* 指针作为右值使用时需要进行强制类型转换。

    6、小结

    现代软件工程中禁用goto语句;void是一种抽象的数据类型;void类型不能用于定义变量;void类型用于声明函数无参数;void类型用于声明函数无返回值;可以定义void*类型的指针;void*类型的指针可以接受任意类型的指针值。
    Processed: 0.009, SQL: 8