目录
频道首页
简单C程序示例及分析
收藏
0
对于C语言呢,大多数C语言的初学者可能在初次看见C程序的时候可能觉得有些古怪,程序中%d、\n这样的符号是什么意思呢?程序中的#include怎么这么奇怪呢?在本篇文章中会简述每行代码的作用,含义。
目录
让我们来看一个简单的C程序——first.c程序:
#include
int main(void) /*一个简单的C程序*/
{
int num; //定义一个名为num的变量
num=1; //为num赋一个值
printf("I am a simple "); //使用printf()函数
printf("computer.");
printf("My favorite number is %d,because it is first.c\n",num);
return 0;
}
输出结果
I am a simple computer.
My favorite number is 1,because it is first.
接下来,将简述示例代码中每行代码的作用及含义:
1.#include 指令和头文件
#include
- 该行的作用相当于把 stdio.h 文件中的所有内容都输入到该行所在的位置。实际上这是一种“拷贝-粘贴”的操作。include 文件提供了一种方便的途径共享许多程序共有的信息。
- #include 这行代码是一条 C 预处理器指令(preprocessor dirctive)。通常,C 编译器在编译前会对源文件做一些准备工作,即预处理(preprocessing)。
- 所有 C 编译器软件包都提供 stdio.h 文件。该文件包含了供编译器使用的输入和输出函数(如,printf())的信息。该文件名的含义是标准输入/输出头文件。通常,在 C 程序顶部的信息集合被称为头文件(header)。
2.main()函数
int main(void)
- C 程序包含一个或多个函数,是 C 程序的基本模块。
- 圆括号表明 main()是一个函数名。
- int 表明 main()函数返回一个整数,返回给操作系统。
- 通常,函数名后面的圆括号中包含一些传入函数的信息,但 void 表明 main()不带任何参数。
3.注释
- 在程序中,被/**/两个符号括起来的部分是程序的注释,较长的注释可以单独放一行或多行, 又称多行注释.如:
/*多行注释*/
- 也可使用//符号创建注释,但限于单行,又称单行注释
//单行注释
4.花括号、函数体和块
{
......
}
- 在示例中,花括号把 main()中的内容括起来。一般而言,所有的 C 函数都使用花括号标记函 数体的开始和结束,这是规定,不能省略。
- 花括号还可以把函数中的多条语句合并为一个单元或块。
5.声明
int num;
- 在示例中,这行代码叫作声明(declaration)。声明是C语言最重要的特性之一。
- 在该例 中,声明完成了两件事,一是在函数中有一个名为num的变量(variable)。二是int表明 num是一个整数。
- int 是一种数据类型,编译器使用这些信息num变量在内存中分配存储空间。分号在C语言中 是大部分语句和声明的一部分。
- 示例int 是C语言的一个关键字(keyword),表示一种基本的C语言数据类型。关键字是C语 言定义的单词,不可用作其他用途,如作为函数名和变量名。
- 示例中num是一个标识符(identifier),也就是一个变量、函数或者其他实体的名称。因此声 明把特定标识符与计算机内存中的特定位置联系起来,同时也确定了存储在某个位置的信息类 型或数据类型。
- 在C语言中,所有变量都必须先声明才能使用。
- 数据类型:C语言可以处理多种类型的数据,如整数、字符和浮点数。把变量声明为整型或字 符类型,计算机才能正确的存储、读取和解释数据。
- 命名:给变量命名是要使用有意义的变量名或标识符;如果变量名无法清楚的表达自身的用 途,可在注释中进一步说明。
- C语言给变量命名可以用大小写字母、数字和下划线来命名。但是名称的第一个字符必须是字母或下划线,不能是数字。
6.赋值
num=1;
- 示例中的这行代码就是赋值表达式语句。赋值是C语言的基本操作之一。
- 此行代码的意思是“把值1赋给变量num” 。
- 在执行int num;声明时,编译器在计算机内存中为变量num预留了空间,然后在执行这行赋值 表达式语句时,把值存储在之前预留的位置。
- 可以给num赋不同的值,这就是num被称为变量(variable)的原因。
- 注:赋值表达式语句从右侧把值赋到左侧;另外,该语句以分号结尾。
7.printf()函数
printf("I am a simple "); //1
printf("computer.\n"); //2
printf("My favorite number is %d,because it is first.c\n",num); //3
以上三行都是用了C语言的一个标准函数,printf(),圆括号表明printf()是一个函数名。
圆括号中的内容是从main()函数传递给prinf()函数的信息。
例如,上面第一行把I am a simple 传递给printf()函数,该信息则称为参数,更确切的说是函 数的实际参数(actual argument)。
在C语言中,实际参数(简称实参)是传递给函数的特定值,形式参数(简称形参)是函数中 用于存储值的变量。
printf()函数的参数的作用——将圆括号中双引号中的内容打印在屏幕上。
第一行printf()表示了在C语言中如何调用函数。只需要输入函数名,把所需的参数填入圆括 号即可。
- 当程序运行到这一行时,控制权被转给已命名的函数(本例中是printf())。当函数执行 结束后,控制权返回至主调函数(caling function),本例中是main().
第二行printf()函数的双引号中的\n字符表示换行。\n组合表示一个换行符(newwine characer)。
- 对于printf()函数而言,就是“在下一行最左边开始新的一行。”换句话说打印换行符的效果与在键盘上按下Enter键相同。
换行符是一个转义序列(escape swquence)。转义序列用用于代表难以表示或无法输入 的字符。如,\t表示Tab键,\b表示Backspace键(退格键)。每个序列都以反斜杠字符 (\)开始。
第三行中的%d的作用:%d相当于是一个占位符,其作用是告诉计算机以何种形式输出num 的值,打印在何处,如,在示例first.c程序的第二行输出( My favorite number is 1,because it is first.),%d被数字1替代,而1就是变量num的值。
8.return语句
return 0;
- return语句是示例中最后一条语句,int main(viod ) 中int表明main()函数应返回一个整数。 这是C标准要求main()这样做。
- 有返回值的C函数要有return语句,该语句以return关键字开始,后面是待返回的值,并以分 号结尾。
- C函数可以给调用方提供一个(或返回)一个数,可把该行看作是结束main()函数的要求。
主页
会议室
Git管理
文章
云文档
看板