亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

掌握 C 递增和递减运算符:用法和最佳实践

C - 自增和自减运算符

自增运算符(++)将变量的值加1,自减运算符(--)将变量的值减1。

自增和自减运算符经常用于构造 C 中的计数循环(使用 for 循环)。它们在数组和指针运算的遍历中也有应用。

++ 和 -- 运算符是一元运算符,可以用作变量的前缀或后缀。

递增和递减运算符示例

以下示例包含多个语句,演示了具有不同变体的增量和减量运算符的使用 -

<前>05

输出

当您运行此代码时,它将产生以下输出 -

<前>14

示例说明

换句话说,“a++”与“++a”具有相同的效果,因为这两个表达式都将变量“a”的值加 1。同样,“a--”与“--a”具有相同的效果。

表达式“a++;”可以被视为等同于语句“a =a + 1;”。这里,右边的表达式将“a”加1,并将结果赋回1,从而将“a”的值加1。

类似地,“b--;”相当于“b =b 1;”。

增量运算符的类型

有两种类型的增量运算符 - 预增量后增量 .

Pre(前缀)增量运算符

在表达式中,预自增运算符在使用变量的值之前将变量的值加 1。

语法

<前>22

示例

在下面的示例中,我们使用预自增运算符,其中“x”的值将增加 1,然后增加的值将在表达式中使用。

<前>35

当您运行此代码时,它将产生以下输出 -

<前>44

Post(后缀)增量运算符

在表达式中,后自增运算符在使用变量的值后将变量的值加 1。

语法

<前>52

示例

在下面的示例中,我们使用后自增运算符,其中“x”的值将在表达式中使用,然后它会增加 1。

<前>65

当您运行此代码时,它将产生以下输出 -

<前>77

自减运算符的类型

有两种类型的减量运算符 - 预减量后减量 .

Pre(前缀)自减运算符

在表达式中,预自减运算符在使用变量的值之前将变量的值减 1。

语法

<前>83

示例

在下面的示例中,我们使用预减运算符,其中“x”的值将减 1,然后将减少的值用于表达式中。

<前>93

当您运行此代码时,它将产生以下输出 -

<前>101

后置(后缀)自减运算符

在表达式中,后自减运算符在使用变量的值后将变量的值减 1。

语法

<前>118

示例

在下面的示例中,我们使用后减运算符,其中“x”的值将在表达式中使用,然后它会减 1。

<前>123

当您运行此代码时,它将产生以下输出 -

<前>138

增量和减量运算符的更多示例

示例 1

以下示例重点介绍了前缀/后缀增量/减量的使用 -

<前>140

输出

当您运行此代码时,它将产生以下输出 -

<前>153

上面的示例表明前缀和后缀运算符对操作数变量的值具有相同的效果。但是,当这些“++”或“--”运算符与表达式中的其他运算符一起出现时,它们的行为会有所不同。

示例 2

在下面的代码中,“a”和“b”变量的初始值相同,但 printf() 函数显示不同的值 -

<前>169

输出

运行代码并检查其输出 -

<前>173

在第一种情况下,printf() 函数打印“x”的值,然后递增其值。在第二种情况下,首先执行增量运算符,printf()函数使用增量后的值进行打印。

自增和自减运算符的运算符优先级

C 中有许多运算符。当在表达式中使用多个运算符时,它们将按其优先顺序执行。递增和递减运算符与其他运算符一起使用时的行为不同。

当表达式包含递增或递减运算符以及其他运算符时,首先执行递增和递减运算。后缀自增和自减运算符的优先级高于前缀自增和自减运算符。

另请阅读: C 中的运算符优先级

示例 1

看看下面的例子 -

<前>180

输出

运行代码并检查其输出 -

<前>191

由于“x++”将“x”的值增加到 6,因此您会期望“z”也为 6。然而,结果显示“z”为 5。这是因为赋值运算符比后缀增量运算符具有更高的优先级。因此,在增加“x”之前,将“x”的现有值分配给“z”。

示例 2

看一下下面的另一个例子 -

<前>206

输出

当您运行此代码时,它将产生以下输出 -

<前>213

结果可能会令人困惑,因为“y”和“z”的值现在都是 6。原因是前缀增量运算符的优先级高于赋值运算符。因此,“y”首先递增,然后将其新值赋给“z”。

运算符的结合性也起着重要作用。对于递增和递减运算符,结合性是从左到右。因此,如果单个表达式中有多个自增或自减运算符,最左边的运算符将首先执行,向右移动。

示例 3

在此示例中,赋值表达式同时包含前缀和后缀运算符。

<前>223

输出

运行代码并检查其输出 -

<前>232

在此示例中,要完成的第一个操作是“y++”(“y”变为 6)。其次,“+”运算符将“x”(即 5)和“y”相加,结果赋给“z”为 11,然后“x++”将“x”增加到 6。

在循环中使用增量运算符

在 C 语言中,最常用的 for 循环语法如下 -

<前>245

示例

循环体针对初始值和最终值之间的所有变量值执行,并在每轮后递增。

<前>255

输出

当您运行此代码时,它将产生以下输出 -

<前>269

C语言

  1. C - 递归
  2. C++ 指针和数组
  3. C# - 文件 I/O
  4. C# - 事件
  5. C - 位域
  6. C# - 字符串
  7. C 中的指针:C 编程中的指针是什么?类型
  8. C# 运算符优先级和关联性
  9. C# - 反射
  10. C++ STL 中的堆栈示例
  11. C# 抽象类教程与示例:什么是抽象?
  12. C - 命令行参数