花了三週時間看完了《C語言程序設計與現代方法》,全書概念講解細緻嚴謹,知其然的同時更知其所以然。示例程序嚴整規範,着重培養良好的編程習慣。習題質量平均水準高(每章我選做了部分),而且還提供了講義和在線資源。無論是對於初學者入門還是老手查漏補缺,這本書都值得拜讀,如果時間允許的話,最好也完成所有練習題。
摘錄一些常用的C語言慣用法:
1. 忽視這一行剩下的字符
while (getchar() != '\n'); /* skip reset of line */
2. 變量ch讀取getchar()遇到的第一個非空白字符
char ch;
while ((ch = getchar()) == ' '); /* skip blanks */
3. 遍歷數組求和
int a[N], *p;
for(p = a; p < a + N; p++)
sum += *p;
4. 字符數組聲明
#define STR_LEN 80
Char str[STR_LEN+1];
5. 搜索字符串的結尾
While(*s)
s++;
While(*s++);
6. 複製字符串
While(*p++ = *s++);
7. 臨時屏蔽包含註釋的代碼
#if 0
包含註釋的代碼行
#endif
8. 自定義枚舉類型
typedef enum{
Mon,
Tue,
Wed,
Thu,
Fri,
Sat,
Sun,
Max
}Weekday;
9. 搜索鏈表
struct Node{
int n;
struct Node* next;
};
struct Node *p;
for(p = first; p != NULL; p = p->next){
/* your code */
}
10. 位設置,將第j位設置爲1
i |= 1 << j;
11. 位清零,將第j位清零
i &= ~(1 << j);
12. 測試第j位是否被設置
if( i & (1 << j)){
/* your code */
}
13. scanf逐個讀取一串整數,在遇到首個問題字符處停止
while( scanf("%d", &i) == 1){
/* your code */
}
14. getc從文件中逐個讀入字符直到遇到文件末尾
while( (ch = getc(fp)) != EOF){
/* your code */
}