c陷阱与缺陷阅读笔记
来源:互联网 发布:大数据涉及到的技术 编辑:程序博客网 时间:2024/04/29 22:47
【1】 “ = ”的优先级低于 “ || ” 且 “ = ” 为右结合性,注意一下代码为死循环:
程序本意是跳过空格,制表符,换行符,但由于不小心将c==' '写成了c= ' '导致程序进入死循环
【2】a=-1 在很老的C版本里理解为 a =- 1
【3】单引号代表一个整数,如a='a'或0141或97
【4】a++不能作为左操作符,a+++++b = (a++) + (++b)
【5】void add() ==== void (*add)() *add() ==== * add()
【6】void (*signal(int,void(*)(int)))(int) (好复杂)
typedef void (*HANDLER)(int)
HANDLER signal(int,HANDLER) (太难理解了,而且不知道自己理解的对否!)
【7】两个二的倍数相加可用按位或代替 1+2=1|2
【8】结构体成员选择符>单目运算符(类型转换符是单目)>双目运算符(运算>移位>关系>逻辑>赋值>条件(其实是三目的))>逗号
【9】main 默认返回值为int
【10】震撼消息:C实际上是不支持二维数组的,所谓的二维数组实际上是元素为数组的一维数组,不过这就容易理解一点东西,比如:
a[10][10] a[2]实际是第三行第一个元素的地址a[2]+1是第四行第一个元素的地址
【11】
简单吧,不过是死循环,数组越界覆盖了的i值
【12】推荐a>=0&&a<9写法
【13】注意g((x,y)) 先求x再求y,但x被舍弃了 不同于 g(x,y)
【14】int mid=(hi+lo)/2 ===> int mid =(hi+lo)>>1
【15】在很多机器上下标运算是比指针运算要慢的!
【16】
你才会怎么显示??他是不成立的sizeof(array)/sizeof(array[0])这个返回值是无符号的,d被强转为无符号的了
换成这样试试:(int)(sizeof(array)/sizeof(array[0]))
【17】break不能用于if,这个都知道吧
【18】乱!乱!int p=N*sizeof*q;
int a=sizeof(int)*p int a=sizeof((int)*p)
【19】
猜猜结果吧,运行了你就知道了,太难理解了!
- c陷阱与缺陷阅读笔记
- 《C陷阱与缺陷》阅读笔记1
- 《C缺陷与陷阱》阅读笔记-词法陷阱
- 阅读笔记《c陷阱与缺陷》《c和指针》
- C陷阱与缺陷阅读笔记(上)
- C陷阱与缺陷阅读笔记(下)
- C陷阱与缺陷阅读笔记(上)
- C陷阱与缺陷笔记
- C缺陷与陷阱 笔记
- C陷阱与缺陷笔记
- C 陷阱与缺陷 笔记
- 《C陷阱与缺陷》笔记
- C陷阱与缺陷笔记
- C陷阱与缺陷笔记
- C陷阱与缺陷笔记
- C陷阱与缺陷 笔记
- C陷阱与缺陷笔记
- 《C陷阱与缺陷》笔记
- PHP 全局变量(Global Scope Variable) vs 局部变量(Local Scope Variable)
- 头脑风暴软件Freemind简介
- 我就是信号工
- linux kernel Setup.S代码完全注释(累死了。。。)
- A+B problem(4) 南邮ACM的OJ
- c陷阱与缺陷阅读笔记
- Dijstra算法实现求解单源最短路径问题
- 验收测试是由用户完成的吗?
- PHP分割textarea转回的数据
- 报错:“System.NullReferenceException: 未将对象引用设置到对象的实例”
- 跨平台的网络通信中间件:ICE和ACE
- C++ 内存池 -- C++ Memory Pool
- 中间件技术及其应用
- 转发MFC中获取各部分的指针方便自己用到