介绍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语言 辅助语句内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C语言详细讲解注释符号的使用

    目录 一.注释规则 二.注释中一个有趣的问题 三.教科书型注释 四.迷惑型的注释 五.忽悠型注释 六.搞笑型注释 七.漂亮的程序注释 八.小结 一.注释规则 编译器在编译过程中使用空格替换整个注释 字符串字面量中的 // 和 /*...*/ 不代表注释符号 /*......*/ 型注释不能被嵌套 下面看一下这样一段代码: #include <stdio.h> int main() { int/*...*/i; char* s = "abcdefgh //hijklmn";

  • 浅谈C语言中的注释风格小结

    C语言中常用的注释风格有两种,一种是通过如下模式进行一段代码的注释: /* comment*/ 另一种是单行注释符号: // comment 学生时代的注释我一般是选用后者,那时候编码量十分有限,即使是简单的小段落注释使用的IDE也支持批量添加单行注释符.而在编码之中,简单的单行注释进行注释的时候键盘的操作更为简单一点. 不过,工作之后接触了相应的编码规范之后,C语言的注释我基本上放弃了单行注释的方法,最多仅仅在调试的时候做简单的使用. 其实,单行注释是从C++中借鉴来的,算是C++风格的注释方

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

    目录 一.程序中的辅助语句(上) 二.程序中的辅助语句(下) 一.程序中的辅助语句(上) C语言中的注释 注释是帮助理解程序而编写的文本 注释本身对程序功能无任何贡献注释分为单行注释和多行注释 注释分为单行注释和多行注释 注意:单行注释不一定被编译器支持 注释的语法 单行注释 从 // 开始到当前行结束的所有文本(注释范围只涉及一行文本) 单行注释中可以重复出现 // (无特殊含义,被看作注释文本) 多行注释 从 */ 开始到 */ 结束的所有文本(注释范围可以涉及多行文本) 多行注释不支持嵌套

  • C语言程序中结构体的内存对齐详解

    目录 一.为什么存在内存对齐 二.结构体的内存对齐四规则 三.举例 一.为什么存在内存对齐 1.平台原因(移植原因): 不是所有的硬件平台都能访问任意地址上的任意数据的:某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常. 2. 性能原因: 数据结构(尤其是栈)应该尽可能地在自然边界上对齐. 原因在于,为了访问未对齐的内存,处理器需要作两次内存访问:而对齐的内存访问仅需要一次访问. 总的来说结构体的内存对齐是拿空间来换取时间的做法. 二.结构体的内存对齐四规则 默认情况:默认的对

  • C语言程序中递归算法的使用实例教程

    1.问题:计算n! 数学上的计算公式为: n!=n×(n-1)×(n-2)--2×1 使用递归的方式,可以定义为: 以递归的方式计算4! F(4)=4×F(3) 递归阶段 F(3)=3×F(2) F(2)=2×F(1) F(1)=1 终止条件 F(2)=(2)×(1) 回归阶段 F(3)=(3)×(2) F(4)=(4)×(6) 24 递归完成 以递归方式实现阶乘函数的实现: int fact(int n) { if(n < 0) return 0; else if (n == 0 || n =

  • 在Go语言程序中使用gojson来解析JSON格式文件

    gojson是快速解析json数据的一个golang包,你使用它可以快速的查找json内的数据 安装 go get github.com/widuu/gojson 使用简介 结构 复制代码 代码如下: type Js struct {     data interface{} } (1) func Json(data) *Js data为string类型,初始化Js结构,解析json并且return Js.data 复制代码 代码如下: json := `{"from":"e

  • 详解计数排序算法及C语言程序中的实现

    关于计数排序算法 当输入的元素是 n 个 0 到 k 之间的整数时,它的运行时间是 Θ(n + k).计数排序不是比较排序,排序的速度快于任何比较排序算法. 由于用来计数的数组C的长度取决于待排序数组中数据的范围(等于待排序数组的最大值与最小值的差加上1),这使得计数排序对于数据范围很大的数组,需要大量内存.计数排序是用来排序0到100之间的数字的最好的算法,但是它不适合按字母顺序排序人名.但是,计数排序可以用在基数排序中的算法来排序数据范围很大的数组. 算法的步骤如下: 找出待排序的数组中最大

  • 举例讲解C语言程序中对二叉树数据结构的各种遍历方式

    二叉树遍历的基本思想 二叉树的遍历本质上其实就是入栈出栈的问题,递归算法简单且容易理解,但是效率始终是个问题.非递归算法可以清楚的知道每步实现的细节,但是乍一看不想递归算法那么好理解,各有各的好处吧.接下来根据下图讲讲树的遍历. 1.先序遍历:先序遍历是先输出根节点,再输出左子树,最后输出右子树.上图的先序遍历结果就是:ABCDEF 2.中序遍历:中序遍历是先输出左子树,再输出根节点,最后输出右子树.上图的中序遍历结果就是:CBDAEF 3.后序遍历:后序遍历是先输出左子树,再输出右子树,最后输

  • 关于C语言程序的内存分配的入门知识学习

    C语言程序的存储区域 C语言编写的程序经过编绎-链接后,将形成一个统一的文件,它由几个部分组成,在程序运行时又会产生几个其他部分,各个部分代表了不同的存储区域: 代码段(Code or Text):代码段由程序中的机器码组成.在C语言中,程序语句进行编译后,形成机器代码.在执行程序的过程中,CPU的程序计数器指向代码段的每一条代码,并由处理器依次运行. 只读数据段(RO data):只读数据段是程序使用的一些不会被更改的数据,使用这些数方式类似查表式的操作,由于这些变量不需要更改,因此只需要放置

  • C语言编程中统计输入的行数以及单词个数的方法

    统计输入的行数 标准库保证输入文本流以行序列的形式出现,每一行均以换行符结束.因此,统计行数等价于统计换行符的个数. #include <stdio.h> /* count lines in input */ main() { int c, nl; nl = 0; while ((c = getchar()) != EOF) if (c == '\n') ++nl; printf("%d\n", nl); } 在该程序中,while 循环语句的循环体是一个 if 语句,它控

  • Python删除Java源文件中全部注释的实现方法

    本文实例讲述了Python删除Java源文件中全部注释的实现方法.分享给大家供大家参考,具体如下: 同事想删除一个Java项目中的全部注释,让我帮忙想想办法. 没找不到合适工具,就写了这个脚本,遍历指定目录,查找*.java文件,删除其中/* */之间,及// 至行末的内容. (用之前要改改其中的路径): #!D:\Python32 # 过滤JAVA程序中的注释 # 如果字符串中有注释符号的话会有问题. import os import re import io # 改这个目录!!! top_d

  • 小程序中this.setData的使用和注意事项

    前言:微信小程序中经常需要用到this.setData({})把变量值渲染到视图层,那到底什么是this.setData,如何使用?需要注意哪些?作为一个初学者,分享一点我的经验,希望大家批评指正. 介绍:setData函数主要用于将逻辑层数据发送到视图层,同时对应的改变this.data.x的值. 参数:Object 以 key : value 的形式表示,将 this.data 中的 key 对应的值改变成 value. 使用:先给出代码,wxss没有什么意义就不贴了 index.wxml

随机推荐