花了三周时间看完了《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 */
}