C中的前缀和后缀增量之间的差异(++ a和a ++)

洛雷

据我了解,a ++是后缀增量,它将a加1并返回原始值。++ a是前缀递增,它将1加到广告中将返回新值。

我想尝试一下,但是在两种情况下,它都返回新值。我有什么误会?

#include <stdio.h>
int main() {
  int a = 0;
  int b = 0;

  printf("%d\n", a); // prints 0
  printf("%d\n", b); // prints 0

  a++; // a++ is known as postfix. Add 1 to a, returns the old value.
  ++b; // ++b is known as prefix. Add 1 to b, returns the new value.

  printf("%d\n", a); // prints 1, should print 0?
  printf("%d\n", b); // prints 1, should print 1

  return 0;
}
Qix-蒙尼卡(MONICA)被盗

请记住,C和C ++是某种表达性语言。

这意味着大多数表达式都返回一个值。如果您不以这种价值做任何事情,那么它就会迷失在时间的沙漏中。

表达方式

(a++)

将返回a的先前值。如前所述,如果没有立即使用返回值,则它与

(++a)

返回新值。

printf("%d\n", a++); // a's former value
printf("%d\n", ++b); // b's new value

上面的语句将按您期望的那样工作,因为您正在此处使用表达式。

以下内容也可以使用。

int c = a++;
int d = ++b;

printf("%d\n", c); // a's former value
printf("%d\n", d); // b's new value

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

前缀和后缀增量

来自分类Dev

stl迭代器的后缀和前缀增量之间的区别?

来自分类Dev

R中的前缀后缀和前缀后缀

来自分类Dev

C#后缀和前缀递增/递减重载差异

来自分类Dev

for循环中的前缀和后缀增量

来自分类Dev

Java中前缀和后缀++运算符之间的区别

来自分类Dev

前缀和后缀opperand之间的区别?

来自分类Dev

类计时器中的重载前缀和后缀增量。调试时出现问题

来自分类Dev

C#中的前缀和后缀运算符重载

来自分类Dev

C#中的前缀和后缀运算符重载

来自分类Dev

在Prolog中交换列表前缀和后缀

来自分类Dev

前缀和后缀运算符C ++

来自分类Dev

C11中的后缀和前缀递增和递减表达式是左值吗?

来自分类Dev

C和Java中的后缀和前缀运算符产生不同的结果

来自分类Dev

Bash中$ *和$ @之间的差异

来自分类Dev

R 中 %% 和 % 之间的差异

来自分类Dev

c(...%*%...)和sum(... * ...)之间的差异

来自分类Dev

从bash中的路径中删除后缀和前缀

来自分类Dev

如何处理CSS中的后缀和前缀

来自分类Dev

分割并在文件内容中添加后缀和前缀

来自分类Dev

模式匹配 shell 脚本中的后缀和前缀

来自分类Dev

字符串前缀和后缀在 Swift 中以“:”分隔

来自分类Dev

二维矩阵中C中**和&**之间的差异

来自分类Dev

目标C中的kCFCalendarUnitDay和NSCalendarUnitDay之间的差异

来自分类Dev

在Objective-C中,Nil和nil与Null之间的差异

来自分类Dev

C中单引号和双引号之间的差异

来自分类Dev

在C ++中{}和{0}之间的括号初始化差异

来自分类Dev

MySQL备份-增量和差异

来自分类Dev

“C”和“extern C”之间的权限差异