1.关于c语言结构的特点
一个程序通常由一个或多个源程序文件组成,其中一个源程序文件通常包括以下3部分。
<1>预处理指令。比如#include<stdio.h>。c编译系统在对源程序进行“翻译”前,先由一个预处理器对预处理指令进行预处理,例如对于#include<stdio.h>指令来说,就是将stdio.h头文件的内容读进来,取代#include<stdio.h>。由预处理得到的结果与程序的其他部分一起,组成一个完整的、可以用来编译的最后的源程序,然后由编译程序对该源程序正式进行编译,才得到目标程序。
<2>全局声明,即在函数之外进行的数据声明,其中写在main函数外面的就是全局声明,main函数外面声明的变量也可被称为全局变量,而如果是在函数里面的变量,被称为局部变量,只在函数范围内有效。
<3>函数定义,函数定义及指定函数的功能,在调用这些函数时,能够完成函数定义中指定的功能
2.函数是c程序的主要组成部分。
程序的几乎全部工作都是由各个函数分别完成的,函数是c程序的基本单位,在c程序中,有且只有一个main函数,但可以写若干个功能函数。
那这么写有什么好处呢?
<1>模块化:函数允许将程序分解成更小的模块或单元。每个函数负责执行特定的任务或功能,从而使程序更易于理解、维护和修改。通过模块化,可以将程序分成更小、更容易管理的部分,提高了代码的可读性和可维护性。
<2>代码复用:函数可以在程序的不同部分重复使用,从而避免了在多个地方编写相同的代码。通过将常用的功能封装在函数中,可以减少代码的冗余,提高代码的重用性和可维护性。
<3>抽象:函数提供了对底层实现的抽象,使得调用者无需了解函数内部的具体实现细节,只需知道如何使用函数及其输入和输出。这种抽象提高了代码的可理解性和可维护性,并降低了程序的复杂度。
<4>模块独立性:函数之间可以相互独立,各自执行特定的任务,因此修改一个函数不会影响到其他函数。这种模块独立性使得程序的开发、测试和调试更加容易和安全。
<5>程序结构:函数定义了程序的结构和逻辑组织,使得程序更加清晰和有条理。通过函数之间的调用关系,可以形成程序的执行流程和控制结构,使得程序的逻辑更易于理解和分析。
3.一个函数包括两个部分
<1>函数首部。即函数的第一行,包括函数名、函数型、函数属性、函数参数(形式参数)名、参数类型。
例如,取两个数中较大值数的函数首部为
int max (int x, int y)
函数类型 函数名 函数参数类型 函数参数名........
一个函数名,后面必须跟一对圆括号括号内写函数的参数名及其类型,如果函数没有参数名,可以在括号中写void也可以是空括号。
<2>函数体。即函数首部下面的花括号内的部分。如果一个函数中包括有多层花括号,则最外层的一对花括号是函数体的范围。特别注意的是,函数体中可以为空,即可以既无声明部分,也无执行部分,这是合法的。
例如:
int main(){}
void max(){}
4.程序总是从main函数开始执行的
不论main函数在整个程序中的位置如何,main函数可以放在程序最前头,也可以放在程序最后,或者在一些函数之前,另一些函数之后。
5.程序中要求计算机完成的操作是由函数中的c语句完成的。
例如,赋值输入输出数据的操作都是由相应的c语句实现的。通常而言,为了书写规范性,习惯性的每行只写一个语句。
int a,b;
6.在每个数据声明和语句的最后,必须有一个分号。
分号是c语句的必要组成部分,例如:
int x;
7.C语句本身不提供输入输出语句。
输入和输出的操作是由库函数scan f和printf函数来完成的,这主要是由于输入输出操作涉及具体的计算机设备,把输入输出操作用库函数实现就可以使C语言本身的规模较小,编译程序简单,很容易在各种机器上实现程序具有可移植性。
8.程序应当包含注释。
一个优秀的程序员,在他所写的源程序上,是一定要加上必要的注释,以增加程序的可读性的。
例如:
#include <stdio.h>
// 函数声明
int max(int num1, int num2);int main() {
int num1, num2;// 从用户输入读取两个整数
printf("请输入两个整数:\n");
scanf("%d %d", &num1, &num2);// 调用函数获取较大的整数
int maximum = max(num1, num2);// 显示结果
printf("较大的整数是:%d\n", maximum);return 0;
}// 函数定义:返回两个整数中较大的那个
int max(int num1, int num2) {
if (num1 > num2) {
return num1;
} else {
return num2;
}
}