据我了解,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;
}
请记住,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] 删除。
我来说两句