一. C语言程序初识,先介绍一个简单的C语言程序:
#include <stdio.h>
int arr[100000]; //声明一个较大的整型数组,尽量放在函数外部
/*原因是:
函数内部申请的局部变量空间,来自于系统栈,空间较小
而函数外部申请的全局变量空间,来自于静态存储区,空间较大
*/
int global; //声明一个全局变量
int main(void){
int num = 0;
printf("%d", num);
//旧的C语言规定变量声明要放在当前程序块的最前面
//C99和C11遵循C++的惯例,可以把声明放在块中的任意位置,但实际上很多编译器不支持C99
printf("这是一个简单的C语言程序");
return 0;
}
二. 接下来对上述程序做一个简要的概述:
1.#include和头文件:提供了一种方便的途径共享许多程序所共有的信息
#include <stdio.h>的作用相当于把stdio.h文件中的全部内容都输入第一行所在的位置,实际上就是一种”复制粘贴”的操作,其中stdio.h是标准输入/输出头文件
#include这行代码是一条C语言预处理指令,预处理是程序执行的必要步骤之一。(新学者可以记住这个知识点,后面学操作系统,编译原理等等都可能会涉及,并且这也是计算机408考研,复试提问可能问到的)
2.main()函数
int main(void),int是main函数的返回类型,表明main函数的返回值是一个整数,main函数的返回值是返回给操作系统;main函数是程序运行的唯一入口;(void)表示main函数不带任何参数。
void main()在有些编译器中允许这样写,但是C语言标准并未认可这种写法,不建议使用。
3.{}花括号、函数体和块
{}花括号括起来的是C语言的函数体或者代码块,当{}括起来的函数体时是不能省略的,相当于某些编程语言的begin和end。
4.注释
/* 注释内容可以让程序的可读性更强 */——多行注释
//是C99新增的注释——单行注释
5.声明
int num叫作变量声明,声明是C语言最重要的特性之一,在C语言中所有变量都必须先声明再使用。
int 是C语言的一个关键字,表示一种基本的C语言数据类型;
num是C语言的一个标识符,也就是一个变量、函数或其他实体的名称。而给变量命名时,不能使用关键字,且最好要使用有意义的变量名或标识符,也可以添加注释进一步说明,这是一种良好的编程习惯和编程技巧。
变量命名可以使用小写字母、大写字母、数字和下划线(_)来命名,名称的第一个字符不能是数字,且按照C99和C11标准编译器最多识别前63个字符,对于外部标识符(extern ex_num)只允许使用31个字符。C语言名称区分大小写。
因此,声明把特定的标识符与计算机内存中的特定位置联系起来,同时也确定了储存在某位置的信息类型或数据类型。声明有诸多好处,这里不做补充,了解这是C语言的优点即可。
6.赋值
num = 0;时赋值表达式语句,也是C语言的基本操作之一。在对变量进行命名后,必须对其赋值,否则其值会是内存单元中存储的乱七八糟的数。
7.printf()函数
这是C语言的一个标准函数:printf()。圆括号()表明printf是一个函数名,f是提醒我们这是一种格式化打印函数,而()中的值是main()函数传递给printf()函数的信息,该信息被称为参数。
参数包括实际参数和形式参数,简称实参和形参,实际参数是传递给printf的特定值,而形参是函数中用于存储值的变量,如
printf("%d", num);
printf("这是一个简单的C语言程序");
0就表示传入printf中的实参,num表示形参,"这是一个简单的C语言程序"也表示实参;%d相当于是一个占位符,其作用是表明输出num的值的位置,d表明把变量作为十进制整数进行打印。
8.return语句
return语句是函数返回语句,int main表示函数返回一个整数;如果遗漏函数中的return语句,程序在运行至右花括号时会返回0,但是不建议漏写,这是一种良好的编程习惯。
三. C程序的组成
下面是展示的C程序伪代码
#include——预处理指令
int main(void)——main()总是第1个被调用的函数,即程序运行的唯一入口;这是一个组成函数语句
function a()——这是一个组成函数语句
function b()——这是一个组成函数语句,函数是C程序的构造块
C语言中的6种语句:标号语句、复合语句、表达式语句、选择语句、迭代语句、跳转语句,由关键字、标识符、运算符和数据组成。