c - 从任何角度来看,++i 和 i+=1 之间有什么区别

标签 c operators

这是来自 kn king 的 c 编程的问题:一种现代方法。我无法理解他给出的解决方案:-

The expression ++i is equivalent to (i += 1). The value of both expressions is i after 
the increment has been performed.

我怎么理解这个?

最佳答案

i = 10
printf("%d", i++);

将打印 10,其中 as

printf("%d", ++i);

将打印 11

X = i++可以这样想

X = i
i = i + 1

X =++i

i = i + 1
X = i

所以,

printf ("%d", ++i); 

相同
printf ("%d", i += 1);

但不是

printf ("%d", i++);

虽然在这三个语句中的任何一个之后 i 的值都是相同的。

关于c - 从任何角度来看,++i 和 i+=1 之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18420479/

相关文章:

c - 没有这样的过程 - ptrace

c - 我正在尝试制作一个可以根据用户在 C 中的选择来运行不同功能的程序

php - VB 的 "AndAlso"在 PHP 中的等价物是什么?

javascript - 检查字符串是否由所有唯一字符组成——JavaScript 中的不等于运算符

java - 运营商优先?

C/Glib,我是否正确截断了这个 gchar 数组?

c - 将错误的无效操作数编译为二进制&&(具有 'int'和 'pthread_t' {aka 'struct <anonymous>'})

c - SPI通讯,如何正确设置时钟

c++ - C++ 中的成员指针运算符 ->* 和 .* 是什么?

c++ - 运算符重载关联性编译器优化