进制
二进制
整数的二进制表示有3种
原码
反码
补码
最高位是符号位,0表示正,1表示负。整数在内存中存的是补码,参与运算时用的也是补码
异或操作符
交换2个数
此方法由于异或不会造成进位,所以a^b不可能超过int的表数范围,所以不会造成溢出,但是可读性不高,且仅仅适用于整数
#include <stdio.h>
int main()
{
int a = 10;
int b = 20;
a = a^b;
b = a^b;
a = a^b;
printf("a = %d b = %d\n", a, b);
return 0;
}
下标引用操作符
支持交换律,因为加法支持交换律
二级指针
指针数组
指针数组模拟二维数组
调试
以下代码debug版本下会死循环,原因是什么
release版本下可能被优化,可能不会死循环,这都是有编译器决定的
断言assert的作用,防止传参传错