int a=1;
int b=0;
地球人都知道:
如果b=a++,b=1,a=2。
如果b=++a,b=2,a=2。
要注意的是:
printf("%d",a++); 和 cout<<a++; 打印出来的都是1,打印完后a才加1。
类似的函数调用 f(a++); 传递的参数也是1。
如果 int d=a*b*c++; 等价于 d=a*b*c; c++; "++"的对象是c,不是d。
仅此记录一下,防止以后犯错。
本文详细解析了C++中前置递增和后置递增的区别,包括它们在不同上下文中的表现,例如在printf、cout及函数参数传递中的行为。此外,还提到了复合赋值表达式中的递增操作细节。
int a=1;
int b=0;
地球人都知道:
如果b=a++,b=1,a=2。
如果b=++a,b=2,a=2。
要注意的是:
printf("%d",a++); 和 cout<<a++; 打印出来的都是1,打印完后a才加1。
类似的函数调用 f(a++); 传递的参数也是1。
如果 int d=a*b*c++; 等价于 d=a*b*c; c++; "++"的对象是c,不是d。
仅此记录一下,防止以后犯错。

被折叠的 条评论
为什么被折叠?