#include<stdio.h> // header file
int main()
{
unsigned char a=255;
unsigned char b=0;
unsigned char c;
c=a++ + --b; // a++ is 0 and --b is 255;
printf("result=%d\n",c);
return 0;
}
输出: result = 254
混淆为什么输出不是255,如何为254?
请让我知道我是否错过了什么?
答案 0 :(得分:4)
auto str = "HelloWorld"s;
int i = 0;
for_each(str.cbegin(), str.cend(), [&i](char const & c) { if (i++ % 2 == 0) cout << c; });
是一个后缀运算符,这意味着将在使用Hlool
后对其求值。如果您尝试a++
,将获得期望的结果。
如果您分解了a
,则可以有效地获得此信息:
++a