简单的示例程序:
#include <stdio.h>
int main(void)
{
int num;
num = 1;
printf("I am a simple computer.\n");
printf("My favorite number is %d because it is first.\n", num);
return 0;
}
运行结果:
C程序剖析:
一、#include指示和头文件
预处理:C编译器在编译之前要对源代码做一些准备工作,称为预处理(preprocessing)
#include语句:C预处理中的一个指令
stdio.h文件:左右C语言编译包中的一个标准部分,包含有关输入和输出函数的信息,可以直接供编译器使用
头文件包括了建立最终的可执行程序时编译器需要用到的信息,定义常量、说明函数名及如何使用,但是函数的实际代码通常被放在一个预编译代码的库文件中,而不在头文件中
编译器的链接部分负责根据头文件找到所需代码,头文件指引编译器把程序正确组合在一起
C语言的一个基本设计原则是避免不必要的成分
二、main()函数
一个C程序(不考虑个别例外的情况)总是从main()函数开始执行
函数的返回类型和形参
int main(void)是标准写法,main()或者void mian()等形式并不被最新的标准所允许
三、注释
{
....
}
注释的目的:使人们更容易理解程序代码
注释的两种风格:
/* 第一种风格的注释 */
// 第二种风格的注释
四、花括号,程序体和代码块
所有的C函数都用花括号表示函数体的开始和结束
五、声明语句(declaration)
int num;
声明语句引导编译器为变量在内存中分配合适的存储空间
C语言中所有变量都必须在使用之前定义
传统上,C语言要求必须在一个代码块的开始处声明变量,在这之前不允许任何其他语句;C99允许把声明放在代码块中的任何位置;但是很多编译器都不支持C99这一规则
数据类型:把变量声明为相应的类型是计算机正确存储、获取和解释该数据的基本前提
尽量使用有意义的变量名,如果名字不能表达清楚,可以用注释解释变量所代表的含义
能够使用的字符的数量与C语言的不通实现有关,即编译器所采用的标准
若采用超过编译器规定的字符数量,编译器不会识别超出的部分
可供使用的字符:小写字母、大写字母、数字、下划线;但是第一个字符必须是字母或下划线
操作系统和C库通常使用以一个或两个下划线开始的名字,因此开发人员最好避免这种用法,以防止出现名字的混乱
C语言的名字是区分大小写的
六、赋值语句(assignment)
num = 1;
赋值语句赋值的顺序是从右到左
声明语句为变量分配空间;赋值语句为变量所在空间存储一个值
七、printf()函数
转义字符:通常用于代表难以表达的或是无法键入的字符
八、return语句
return语句(返回语句)是程序的最后一个语句
九、小结——简单程序的结构
程序由一个或多个函数组成,其中必须有一个名为main()的函数
函数的描述由函数头和函数体组成:函数头包括预处理语句和函数名;函数体是由花括号包含的一系列语句组成,每个语句以分号结束
/**** 函数头 ****/
#include <stdio.h> // 预处理指令
int main(void) // 带有参数的函数名
/**** 函数体 ****/
{
int q; // 声明语句
q = 1; // 赋值语句
printf("%d is neat.\n", q); // 函数语句
return 0;
}