介绍C语言程序中的注释等辅助语句如何使用

 更新时间:2022年04月21日 14:09:42   作者:清风自在 流水潺潺  
C语言中分为单行注释和多行注释:单行注释 以 // 开始的这一行文本,可能不被编译器所支持;多行注释从 /* 到 */之间的所有文本,不支持嵌套,下面让我们详细来了解

一、程序中的辅助语句(上)

C语言中的注释

  • 注释是帮助理解程序而编写的文本
  • 注释本身对程序功能无任何贡献注释分为单行注释和多行注释
  • 注释分为单行注释和多行注释

注意:单行注释不一定被编译器支持

注释的语法

单行注释

  • 从 // 开始到当前行结束的所有文本(注释范围只涉及一行文本)
  • 单行注释中可以重复出现 // (无特殊含义,被看作注释文本)

多行注释

  • 从 */ 开始到 */ 结束的所有文本(注释范围可以涉及多行文本)
  • 多行注释不支持嵌套(错误用法:/* ... abc ... /* d */ ...*/)

示例

int main()
{
    /*
        多行注释
        定义一个变量,并且初始化
    */
    int i = (int) (10.3 / 3);
    printf("i = %d\n", i);
    //单行注释
    /*
        // 多行注释中嵌套单行注释,无意义
    */
    return 0;
}

赋值语句

连续赋值

  • 多个赋值操作组合在一起,如: a = b = c ...

复合赋值

  • 数学运算与赋值操作组合在一起
  • 如:a += 1,a -= 2,a *= 3,a /= 4

上代码:

#include <stdio.h>
int main()
{
    int a = 0;
    int b = 10;
    a = b = b + 1; // a=>11  b=>11
    printf("a = %d, b = %d\n", a, b);
    a += 1;
    a -= 2;
    a *= 3;
    a /= 4;
    // a => 7
    printf("a = %d\n", a);
    /*
        复合赋值与连续赋值相结合
    */
    a += b -= 1;
    printf("a = %d, b = %d\n", a, b);
    return 0;
}

下面为输出结果:

三目运算符(条件运算符)

  • 本质:if ... else ... 语句的缩写版
  • 语法:(条件) ? (为真时的语句) : (为假时的语句)

注意事项

  • 三目运算表达式最后产生的是一个值,因此整个表达式不能作为左值使用

逗号表达式

  • 逗号(,)是一种特殊的运算符
  • 逗号可以将多个语句连接起来组合成一个语句
  • 语法:语句1,语句2,语句3,...,语句n

下面代码就是采用逗号表达式将多个语句连在一起:

int main()
{
    int a = 0;
    int b = 1;
    a = 2, b = 3, printf("a + b = %d\n", a + b);
    return 0;
}

逗号表达式补充说明

  • 逗号 (,) 优先级最低,逗号表达式可以配合括号使用
  • 逗号表达式的意义是将多个语句连接为一个语句
  • 逗号表达式从左向右开始执行语句
  • 逗号表达式的值就是最右边语句的值

下面的代码就是综合逗号表达式和三目运算符:

#include <stdio.h>
int main()
{
    int a = 0;
    int b = 10;
    int c = 0;
    a = (b < 10) ? 1 : 2;
    printf("a = %d\n", a);
    (a < 5) ? (a = 5) : (a = 0);
    printf("a = %d\n", a);
    /*
    ((a == 5) ? a : b) = 10; // ERROR
    */
    a = b = c = 0;
    c = (a = 2, b = 3, a + b);
    printf("a = %d\n", a);
    printf("b = %d\n", b);
    printf("c = %d\n", c);
    c -= a;  // c = c - a;
    printf("c = %d\n", c);
    return 0;
}

下面为输出结果:

小结

  • 注释是帮助理解程序而编写的文本,对程序功能无贡献
  • 数学运算与赋值操作可以组合在一起使用
  • 三目运算符可以理解为 if ...else .. .的缩写形式
  • 逗号表达式的意义是将多个语句连接为一个语句

二、程序中的辅助语句(下)

自增 (++) 与自减 (--) 运算符

前置:先自增(自减),再取值

  • ++v;
  • --v;

后置:先取值,再自增(自减)

  • v++;
  • v--;

举一个简单的例子,

v = 1, y = ++v; 执行完之后v = 2, y = 2;

v = 1, y = v++; 执行完之后v = 2, y = 1;

注意事项

  • 自增(自减)操作符的结合方向 “从右至左”
  • 不要在一个表达式中混合四则运算与自增(自减)运算

上代码:

#include <stdio.h>
int main()
{
    int a = 0;
    int c = 1;
    a = -c++;  // c -> 2
    printf("a = %d\n", a);
    a = +(++c); // +(++c); c -> 3
    printf("a = %d\n", a);
    a = -c--;  // c -> 2
    printf("a = %d\n", a);
    printf("c = %d\n", c);
    return 0;
}

下面为输出结果:

goto - 程序世界中的“破坏者”

  • goto是C语言中的一个关键字,用于无条件暴力跳转
  • goto的跳转位置由标签指定(具体指定某行代码)
  • 标签就是一个C语言中的合法命名,并以冒号(∶)结束
  • 语法:goto LABEL;

如下所示:

c = 1;
goto LABEL;
c = 2;
LABEL:
    printf("c = %d\n",c);

注意事项

  • goto在程序中极具破坏性,会破坏程序结构,造成程序难以理解和维护,现代软件开发已禁用goto。

上代码:

#include <stdio.h>
int main()
{
    int a = 0;
    int c = 1;
    if( a + c > 0 )
    {
        printf("a = %d, c = %d\n", a, c);
        goto ELSE;
    }
    else
    {
        ELSE: printf("%d + %d = %d\n", a, c, a + c);
        goto FOR;
    }
    for(c=10; c>0; c--)
    {
        FOR:
        printf("c = %d\n", c);
    }
    return 0;
}

下面为输出结果:

可以看到 c 输出为1,这是因为使用 goto 语句后,直接调到 FOR 标签所在的位置,导致了 for 循环没有执行。

小结

  • 前置 ++ 和 -- :先自增(自减),再取值
  • 后置 ++ 和 --:先取值,再自增(自减)
  • goto 是C语言中的一个关键字,用于无条件暴力跳转
  • 现代软件开发已禁用goto(弊大于利)

到此这篇关于介绍C语言程序中的注释等辅助语句如何使用的文章就介绍到这了,更多相关C语言 辅助语句内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 关于C语言中参数的传值问题

    关于C语言中参数的传值问题

    C语言中参数的传值一直比较含糊,今天在网上看到三个面试题的详解,感觉讲的很好,就拿来记下,方便学习和记忆
    2013-10-10
  • C语言菜鸟基础教程之加法

    C语言菜鸟基础教程之加法

    C语言中运算符和表达式数量之多, 在高级语言中是少见的。正是丰富的运算符和表达式使C语言功能十分完善。 这也是C语言的主要特点之一。今天我们来看看加法运算
    2017-10-10
  • c++ 数字类型和字符串类型互转详解

    c++ 数字类型和字符串类型互转详解

    今天小编就为大家分享一篇讲解c++ 数字类型和字符串类型互转的文章,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-09-09
  • C语言中的long型究竟占4个字节还是8个字节(遇到的坑)

    C语言中的long型究竟占4个字节还是8个字节(遇到的坑)

    小编在复习C语言的时候踩到了不少坑,纠结long类型究竟占4个字节还是8个字节呢?好,今天通过本文给大家分享下我的详细思路,感兴趣的朋友跟随小编一起看看吧
    2021-11-11
  • C语言中各种操作符的详细介绍(纯干货!)

    C语言中各种操作符的详细介绍(纯干货!)

    指令系统的每一条指令都有一个操作符,它表示该指令应进行什么样性质的操作,不同的指令用操作符这个字段的不同编码来表示,每个编码代表一种指令,这篇文章主要给大家介绍了关于C语言中操作符的相关资料,需要的朋友可以参考下
    2021-06-06
  • 求子数组最大和的解决方法详解

    求子数组最大和的解决方法详解

    本篇文章是对求子数组最大和的解决方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C语言堆与二叉树的顺序结构与实现

    C语言堆与二叉树的顺序结构与实现

    堆是计算机科学中一类特殊的数据结构的统称,通常是一个可以被看做一棵完全二叉树的数组对象。而堆排序是利用堆这种数据结构所设计的一种排序算法。本文将详细介绍堆与二叉树的顺序结构与实现,需要的可以参考一下
    2022-05-05
  • C++基于EasyX实现简单扫雷游戏

    C++基于EasyX实现简单扫雷游戏

    这篇文章主要为大家详细介绍了C++基于EasyX实现简单扫雷游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • C/C++详解实现二层转发

    C/C++详解实现二层转发

    数据链路层是开放系统互连 (OSI) 模型中的第二层,该层用于通过 LAN 等单一网络进行通信的节点,第二层数据包不能从一个网络传输到另一个网络。而二层转发是根据报文的目的MAC直接进行转发,转发过程中不用对报文的头部做任何的修改
    2022-05-05
  • C++中new与delete、malloc与free应用分析

    C++中new与delete、malloc与free应用分析

    这篇文章主要介绍了C++中new与delete、malloc与free应用分析,很重要的概念,需要的朋友可以参考下
    2014-08-08

最新评论