1.i++使用结束后自加; ++i先自加后使用。
例子
int i = 2;
int num;
num =(i++)+(i++)+(i++)+(i++);
结果i=6 num=8
num =(++i)+(++i)+(++i)+(++i);
结果i=6 num=19
i=i *((i++)+ (++i));
结果i=19
2.函数传参从右边开始传
例子
void func(int a, int b)
{
printf("a = %d\n",a);
printf("b = %d\n",b)
}
int main()
{
int i = 2;
func(++i, i++);
}
i++替换成数值 ++i替换成变量
结果a=4 b=2
3.位运算处理的是无符号数
右移用符号位来补位,左移用0来补位
4.按位与运算通常用来对位清零或保留某些位
按位或运算通常用来将某些位置1,其他位不变
异或通常用来使特定位的值取反或者不引入第三方变量,交换两变量的值
例子:交换a和b的值
int a = 5;
int b = 6;
a=a^b;
b=a^b';
a=a^b;
或:
a=a+b;
b=a-b;
a=a-b;
两种方法第一种方法更好,因为加减法在做大数操作时会溢出。