迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > C语言 >

C 语言中的 i++ 与++i

作者:迹忆客 最近更新:2023/05/05 浏览次数:

本文将讲解 C 语言中前缀增量与后缀增量运算符,也就是 i++++i 的几种使用方法。


C 语言中++ii++ 记号的主要区别

这两个符号的基本部分是增量一元运算符++,它将操作数(例如 i)增加 1。增量运算符可以作为前缀++i 出现在操作数之前,也可以作为后缀运算符-i++ 出现在操作数之后。

当在一个表达式中使用++ 运算符递增的变量值时,会出现稍微不寻常的行为。在这种情况下,前缀和后缀递增的行为是不同的。也就是说,前缀操作符在其值被使用之前递增操作数,而后缀操作符在值被使用之后递增操作数。

因此,使用 i++ 表达式作为参数的 printf 函数将在 i 的值被递增 1 之前打印出来。另一方面,使用前缀递增操作符 ++iprintf 函数将打印递增的值,在第一次迭代时为 1,如下例代码所示。

#include <stdio.h>
#include <stdlib.h>

int main() {
    int i = 0, j = 0;

    while( (i < 5) && (j < 5) ) {
        /*
        postfix increment, i++
        the value of i is read and then incremented
        */
        printf("i: %d\t", i++);
        /*
        prefix increment, ++j
        the value of j is incremented and then read
        */
        printf("j: %d\n", ++j);
    }

    printf("At the end they have both equal values:\ni: %d\tj: %d\n\n", i, j);

    exit(EXIT_SUCCESS);
}

输出:

i: 0	j: 1
i: 1	j: 2
i: 2	j: 3
i: 3	j: 4
i: 4	j: 5
At the end they have both equal values:
i: 5	j: 5

在 C 语言中循环语句使用 ++i 符号作为普遍接受的风格

后缀和前缀运算符在 for 循环语句中使用时具有相同的功能行为。在下面的示例代码中执行两个 for 迭代时,它们打印 k 的值是相同的。

请注意,有几种说法认为在 for 循环中使用前缀增量比后缀有更好的性能效率,但在大多数应用中,有效的时间差异将可以忽略不计。我们可以养成使用前缀操作符作为首选方法的习惯,作为一种普遍接受的风格。

但如果你已经在使用后缀表示法,那么考虑到使用现代编译器的相应优化标志会自动消除低效的循环迭代。

#include <stdio.h>
#include <stdlib.h>

int main() {

    for (int k = 0; k < 5; ++k) {
        printf("%d ", k);
    }
    printf("\n");
    for (int k = 0; k < 5; k++) {
        printf("%d ", k);
    }
    printf("\n\n");

    exit(EXIT_SUCCESS);
}

输出:

0 1 2 3 4
0 1 2 3 4

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 C 语言中使用 typedef enum

发布时间:2023/05/07 浏览次数:181 分类:C语言

本文介绍了如何在 C 语言中使用 typedef enum。使用 enum 在 C 语言中定义命名整数常量 enum 关键字定义了一种叫做枚举的特殊类型。

C 语言中的静态变量

发布时间:2023/05/07 浏览次数:151 分类:C语言

本文介绍了如何在 C 语言中使用静态变量。在 C 语言中使用 static 变量在函数调用之间保存变量值

C 语言中生成随机数

发布时间:2023/05/07 浏览次数:64 分类:C语言

本文演示了如何在 C 语言中生成随机数。使用 rand 和 srand 函数在 C 语言中生成随机数

C 语言中获取当前工作目录

发布时间:2023/05/07 浏览次数:182 分类:C语言

本文演示了如何在 C 语言中获取当前工作目录。使用 getcwd 函数获取当前工作目录的方法

C 语言中的位掩码

发布时间:2023/05/07 浏览次数:126 分类:C语言

本文介绍了如何在 C 语言中使用位掩码。使用 struct 关键字在 C 语言中定义位掩码数据

C 语言中的排序函数

发布时间:2023/05/07 浏览次数:181 分类:C语言

本文演示了如何在 C 语言中使用标准库排序函数。使用 qsort 函数对 C 语言中的整数数组进行排序

C 语言中的 extern 关键字

发布时间:2023/05/07 浏览次数:114 分类:C语言

本文介绍了如何在 C 语言中使用 extern 关键字。C 语言中使用 extern 关键字来声明一个在其他文件中定义的变量

C 语言中的 #ifndef

发布时间:2023/05/07 浏览次数:186 分类:C语言

本文介绍了如何在 C 语言中使用 ifndef。在 C 语言中使用 ifndef 保护头文件不被多次包含 C 语言中的头文件用于定义同名源文件中实现的函数的接口。

在 C 语言中使用位移操作

发布时间:2023/05/07 浏览次数:132 分类:C语言

本文演示了如何在 C 语言中使用位移操作。在 C 语言中使用 << 运算符将数字向左移位的方法

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便