声明:这个C语言学习笔记系列是由我学习时的零散记录整合而来,也算是记录了我的学习之路。把这些笔记晒出来,一是为了加深理解,二是为了督促自己不断进步。本人暂时只是一只小菜鸟,学习到的知识有限,文中难免有不足之处,希望大家能够批评指正;另我的文笔暂时的确不怎么样,还望见谅。
对于初学者来说,用VIM等工具在命令行下学习编程的确比较麻烦,同时也不太利于专注于语言本身,所以一个合适且好用的IDE是必要的。由于VC6.0在WIN7下兼容性不太好,个人推荐Code::blocks和VC++2010 express。
现在切入正题,谈谈第一个程序。说起第一个程序,当然是Hello world!啦!
1 #include <stdio.h>
2 int main(void)
3 {
4 printf("Hello world!\n");
5 return 0;
6 }
程序相当之简单,但作为第一个程序(程序员对第一个程序应该是有特殊感情的吧?),还是有不少东西可以说的。下面我将一一道来。
首先,我们应当知道C语言编写的程序是由一个个函数组成的,如上面代码中的main()和printf()。C语言中的函数是VB中的过程和函数的综合,关于函数的知识将在以后详细解释。接下来我来详细解释下这个程序。第一句是文件包含命令,它的作用是将stdio.h中的内容包含到源文件中,这里涉及到函数声明的知识,以后再作解释。那stdio.h是什么呢?原来是由于C语言当初设计时就十分简单,甚至都没有提供输入输出的功能,所以后人只好自己编写这些函数了,并且将同一类函数放到一个“库”中,这个stdio.h就是一个库。说白了,库就是一堆具有相似用途的函数的集合。由于这些函数功能简单但是用途又十分广泛,于是C语言标准中就引入了一些标准库,像stdio.h就是标准输入输出库。当然我们也可以自己编写库。接下来说下第二句中的main()函数,main()虽然也是函数,但是它的地位十分独特。一切C语言程序都是由main()函数的开始处开始运行,到它的结尾处结束。main()就像是一个统领全军的元帅,而其他的函数就是他手下的将军和小兵。紧跟在main()下的一对大括号就指定了main()函数的范围。这句中的int和void也会在讲解函数时一起说明。这里不得不说一下main()函数的形式问题:在C语言标准中只定义了int main(void)和int main(int argc, char *argv[])两种标准形式,虽然标准中并未禁止void main()等形式,但最好还是不要使用,毕竟编程是一件要遵循标准的事。接下来的printf()当然也得说一说了,看名字我们也猜得出它的功能:打印字符或语句到屏幕上。而Hello world!\n就是要打印出的语句,我们实验后可以看到只输出了Hello world!那\n是什么呢?其实这里的\n叫做转义字符,它的作用就是换行。同样也好有其他一些转义字符,比如\t代表制表符(TAB),这些转义字符一般书上都有详细说明,这里不再赘述。大家应当都注意到句末的分号了吧?在C语言中分号标志着一条语句在此结束,所以分号不能忘记打,也不可以乱打(我刚开始时就经常忘记- -!)。最后的return 0; 一句则代表着main()函数将数0返回给了操作系统,这里的0说明程序正常退出了。
到此为止,第一个程序讲解完毕,如有遗漏或错误之处欢迎指正。水平有限,让大家见笑了。
资料来源:《The C Programming Language》
浙公网安备 33010602011771号