1.内存的四个区域
一点说明
2. 为什么不能对表达式赋值
int a=10,b=20;
int c=0;
c=a+b;//√
a=b=c;//x
++a=100;//√
a++=100;//x
把a放到临时空间,将b和临时空间中的a累加后,赋值给c
因为变量的加减的值在寄存器中进行存储,对于高级代码来说,相当于常量(临时量的常量性),而我们对常量不能进行操作,对常量不能赋值,只能取值。
3.位运算
3.1异或
位与最后的值就是未成对出现的值,因为位与运算有结合律
哈希表也是一种解决问题的利器
3.2按位取反
4.格式化字符串
格式化字符串将格式化的字符串送入到buffer中
printf将将格式化的字符串送入终端
5.递归函数
1.递归查找函数
1.精巧的地方在于:将(退出循环的结束和找到值 )放在了同一步解决,省去了双层if的烦恼,足够简洁
2.测试代码时,从越界、边缘值、特殊值、一般情况,几种特殊状态中分析
2.递归二分查找函数
3.获取月份的函数
优化后: