大一时候C语言的启蒙老师是哈工大赵岩,他富有启发性的教学深深地吸引了我,引发了我对学习编程的强烈兴趣,但是后来用Java做些项目更多,C语言遗忘得差不多了,最近要开始学算法,因此重操C语言,将一些基础的东西整理一下,补补自己的漏洞。
P.S:赵岩老师最近出了本新书《C语言点滴》,去年我看过一部分书稿,不同于其他C语言书籍的枯燥乏味,这本书幽默打趣,不管你之前喜不喜欢编程和C语言,看两页就会被深深吸引~
OK,言归正传。
---------------------------------------------------------------------------------------------------------------------
1. && 和 ||
expA && expB 若A不满足,则返回FALSE,不再执行B
expA || expB 不论AB是否满足,AB均执行
2.头文件
作用:
1.方便开发:包含一些文件需要的共同的常量,结构,类型定义,函数,变量申明;
2. 函数的作用域从函数声明的位置开始,到文件结尾,而不是从函数定义的位置开始
3 .提供接口:对一个软件包来说可以提供一个给外界的接口(例如: stdio.h)。
头文件里应该有什么:
常量,结构,类型定义,函数,变量申明。
头文件不应该有什么:
变量定义, 函数定义。
虽然申明和类型定义可以重复,不过推荐使用条件编译。
#ifndef _FILENAME_H,
#define _FILENAME_H
……
#endif
3.include
使用include时,使用引号与尖括号的意思是不一样的。
使用引号(“”)时,首先搜索工程文件所在目录,然后再搜索编译器头文件所在目录。
而使用尖括号(<>)时,只在编译器头文件所在目录寻找指定头文件,若未找到则报错。(此处别的很多地方讲的是错的!)
4.判断输入的个数是否匹配
while(scanf("%s%d",s,&n)==2) //to see if the scanf read in as many items as you want
/*while(scanf(%s%d",s,&n)!=EOF) //this also work */