C语言程序教程(2012年)
01章 C语言程序的构成
与C++、Java相比,C语言其实很简单,但却非常重要。因为它是C++、Java的基础。不把C语言基础打扎实,很难成为程序员高手。
一、C语言的结构
先通过一个简单的例子,把C语言的基础打牢。
/* clang01_1.c */
#include
int main(void)
{
printf("这是劝学网的C语言教程。\n");
return 0;
}
C语言的结构要掌握以下几点:
C语言的注释是/* ··· */,而不是//···,//是C++的单行注释,有的C语言版本也认可。
C语言区分大小写,每句以分号结尾。
C语言程序是从main函数开始的。函数的返回值如果缺省则为int,而不是void。
函数必须用return来返回。即使void类型也不建议省略。
使用函数时须包含相应的头文件。自定义的头文件用双引号,C语言自身的头文件用
二、main()函数的写法与含义
main()的参数和返回值全部省略,这和上例含义相同。省略写法是一种很不好的习惯。
main() int main(void)
{ {
··· 等同于 ···
} }
main()的参数是一种不限个数的写法,argc代表参数的个数,真正的参数是放在argv[]数组里面的。注意:当数组当参数用时,数组被降格为指针。初学者先照着样子写,以后小雅会详细说明指针和数组的区别。
int main(int argc, char *argv[]) int main(int argc, char **argv)
{ {
··· 也可写成 ···
} }
三、头文件的意义
每个C程序通常分为两个文件。一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。 C程序的头文件以“.h”为后缀,C 程序的定义文件以“.c”为后缀。
头文件的内容也可以直接写C程序中,但这是很不好的习惯。许多初学者用了头文件,却不明其理。在此略作说明。
通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布,只要向用户提供头文件和二进制的库即可。用户只需要按照头文件中的接口声明来调用库功能,而不必关心接口怎么实现的。编译器会从库中提取相应的代码。
头文件能加强类型安全检查。如果某个接口被实现或被使用时,其方式与头文件中的声明不一致,编译器就会指出错误,这一简单的规则能大大减轻程序员调试、改错的负担。
关于头文件的内容,初学者还必须注意。
头文件中可以和C程序一样引用其它头文件,可以写预处理块,但不能写语句命令。
可以申明函数,但不可以定义函数。
可以申明常量,但不可以定义变量。
可以“定义”一个宏函数。注意:宏函数很象函数,但却不是函数。其实还是一个申明。
结构的定义、自定义数据类型一般也放在头文件中。
#include ,编译系统会到C语言固定目录去引用。#include "filename.h",系统一般首先在当前目录查找,然后再去环境指定目录查找。
四、好的风格是成功的关键
版本申明、函数功能说明、注释等是C语言程序的一部分。不养成很好的习惯则不能成为C语言高手(专业人员)。
02章 C语言的变量和数据类型
掌握变量的有效范围、基本数据类型是本章的内容。
一、基本数据类型
基本数据类型只有5种,另外加上布尔型、数组、结构类型、枚举类型等都是基本类型的一种变化。指针是一种地址操作, 必须和某一种数据类型相结合才有意义。自定义数据类型则是将以上类型进行组合变化后重新命名而已。
char 字符型
int 整型
float 浮点型
double 双精度浮点型
void 无类型
不同的C语言版本都扩充了许多自己的类型,这些全是基本类型的变化(主要是数据范围的变化),扩充的修饰符有2组(short和long,signed和unsigned)。下面列出VC的基本类型及部分扩充类型,以供参考:
类型名称
字节数