要理解一个C程序,仅仅理解组成该程序的符号是不够的,程序员还必须理解这些符号是如何组合成声明、表达式、语句和程序的。虽然这些组合方式的定义都很完备,几乎无懈可击,但有时这些定义与人们的直觉相悖,或者容易引起混淆。
1、理解函数声明 关于(*(void(*)())0)();
2、运算符优行级问题
3、注意作为语句结束标志的分号
struct logrec{
int date;
int time;
int code;
} //省略分号,故表示main函数的返回值为结构类型
main() {
... //主函数不写return,返回的是随机值,而且main()中return只会返回一个整数值。
}
windows : cmd中用echo %errorlevel% 查看某一exe文件的main函数的返回结果。
4、switch语句
5、函数调用:funname();
6、“悬挂”else引发的问题:if和else的配对
习题1:C语言允许初始化列表中出现多余的逗号,int a[]={1,2,3,}; sizeof(a)==12;(VC)
允许这样,主要是为了代码产生器的方便。