一、C 预 处 理 器 指 令
#include 这 行 代 码 是 一 条 C 预 处 理 器 指 令(preprocessor directive)。
通常,C编译器在编译前会对源代码做一些准备工作,即预处理(preprocessing)。
在C程序顶部的信息集合被称为头文件(header)。头文件帮助编译器把你的程序正确地组合在一起。stdio.h是C编译器软件包的标准部分,它提供键盘输入和屏幕输出的支持。
注:为何不内置输入和输出?轻装上阵表现了C语言的哲学。
二、函数是C程序的基本模块。
main()函数必须是开始的函数。
注释方式
/*
注释1
*/
//注释2
花括号标记函数体的开始和结束。花括号还可用于把函数中的多条语句合并为一个单元或块。
声明:编译器使用声明(declaration)信息(变量及变量类型)为num变量在内存中分配存储空间。C 语言可以处理多种类型的数据,如整数、字符和浮点数。把变量声明为整型或字符类型,计算机才能正确地储存、读取和解释数据。
声明变量的4个理由:
- 方便读者查找和理解程序的用途。
- 做一些计划。
- 发现隐藏在程序中的小错误。如果事先未声明变量,C程序将无法通过编译。
标识符(identifier):变量、函数或其他实体的名称。
- 名称的第1个字符必须是字符或下划线,不能是数字。
- 操作系统和C库经常使用以一个或两个下划线字符开始的标识符。标准标识符都以一个或两个下划线字符开始,如库标识符。保留标识符(reserved identifier),C语言已经指定了它们的用途或保留它们的使用权,如果你使用这些标识符来表示其他意思会导致一些问题。尽管它们也是有效的名称,不会引起语法错误,也不能随便使用。保留标识符包括那些以下划线字符开头的标识符和标准库函数名,如printf()。
- C语言的名称区分大小写
关键字是C语言的词汇。它们对C而言比较特殊,不能用它们作为标识符(如,变量名)。
圆括号中的内容是从main()函数传递给printf()函数的信息。%d相当于是一个占位符,告诉计算机以何种形式输出num的值,打印在何处。%提醒程序,要在该处打印一个变量,d表明把变量作为十进制整数打印。实际参数(简称实参)是传递给函数的特定值,形式参数(简称形参)是函数中用于储存值的变量。
转义序列(escape sequence)用于代表难以表示或无法输入的字符。
如果遗漏 main()函数中的 return 语句,程序在运行至最外面的右花括号(})时会返回0。
注:待打印的值不一定是变量,只要可求值得出合适类型值的项即可。
三、多函数体
函数原型(prototype),告知编译器在程序中要使用该函数,也被称为函数声明(function declaration)。函数原型还指明了函数的属性:返回值和参数。C标准建议,要为程序中用到的所有函数提供函数原型。标准include文件为标准库函数提供可用函数原型。
函数调用(function call)出现在 main()中。
函数定义(function definition)是函数本身的源代码。
四、关于调试
找出并修正错误的过程叫做调试(debug)。
报错的位置比真正的错误位置滞后一行。
编译器无法检测语义错误。
程序状态(program state)是在程序的执行过程中,某给定点上所有变量值的集合。
跟踪程序状态的方法:
- 自己模拟计算机逐步执行程序。
- 在程序中的关键点插入额外的printf()语句。
- 使用调试器。
总结:作为程序员的任务是,在符合 C标准的编译器框架中,表达你希望程序应该如何完成任务的想法。