1. <C陷阱与缺陷>
int num[10]={0} ;
测试一下 num[0] 是否 等于 0[num] 。。。。。。
因为num是首地址 num+0 ==0+num
2.
其实C中只有一维数组 我们所说的 int a[3][4] 只是一个包含了三个元素 每个元素都是包含了四个整形值的一维数组
3.int num[10][10] ;
int *p=num[0] ;
名为num的数组中 num[0]-num[9]表示的是 每个长度为10的一维数组 元素的首地址
4. (* (void (*)())0)() ; //眨眼一看很难看懂 其实这就是一个函数指针的问题 调用 0地址的函数 考试的时候我以为是 数值的强制转换 郁闷了。。。。
5. a++++b 会报错 a++ + ++b 不会错 因为 词法分析器 会自左向右 结合字符来组成 运算符 a++后位一个数值 如果a++++那么 一个数值的自加是不是没意义呢
6. a<<3+ 5 (a<<3)+5 意思完全不同 运算符优先级问题
7.if
(
1
<
2
) //这样编译器也能通过
8.