C语言-C语言程序的结构

Posted 霏ིྀ宇ིྀ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言-C语言程序的结构相关的知识,希望对你有一定的参考价值。

C语言程序的结构

程序结构

C 程序主要包括以下部分:

  1. 预处理器指令
  2. 函数
  3. 变量
  4. 语句 & 表达式
  5. 注释

1.C语言程序的语言特点;

主要特点

C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,十分有利于程序的调试,且c语言的处理和表现能力都非常的强大,依靠非常全面的运算符和多样的数据类型,可以轻易完成各种数据结构的构建,通过指针类型更可对内存直接寻址以及对硬件进行直接操作,因此既能够用于开发系统程序,也可用于开发应用软件。通过对C语言进行研究分析,总结出其主要特点如下:

  1. 简洁的语言

C语言包含的各种控制语句仅有9种,关键字也只有32个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。

  1. 具有结构化的控制语句

C语言是一种结构化的语言,提供的控制语句具有结构化特征,如for语句、if…else语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。

  1. 丰富的数据类型

C语言包含的数据类型广泛,不仅包含有传统的字符型、整型、浮点型、数组类型等数据类型,还具有其他编程语言所不具备的数据类型,其中以指针类型数据使用最为灵活,可以通过编程对各种数据结构进行计算。

  1. 丰富的运算符

C语言包含34个运算符,它将赋值、括号等均视作运算符来操作,使C程序的表达式类型和运算符类型均非常丰富。

  1. 可对物理地址进行直接操作

C语言允许对硬件内存地址进行直接读写,以此可以实现汇编语言的主要功能,并可直接操作硬件。C语言不但具备高级语言所具有的良好特性,又包含了许多低级语言的优势,故在系统软件编程领域有着广泛的应用。

  1. 代码具有较好的可移植性

C语言是面向过程的编程语言,用户只需要关注所被解决问题的本身,而不需要花费过多的精力去了解相关硬件,且针对不同的硬件环境,在用C语言实现相同功能时的代码基本一致,不需或仅需进行少量改动便可完成移植,这就意味着,对于一台计算机编写的C程序可以在另一台计算机上轻松地运行,从而极大的减少了程序移植的工作强度。

  1. 可生成高质量、目标代码执行效率高的程序

与其他高级语言相比,C语言可以生成高质量和高效率的目标代码,故通常应用于对代码质量和执行效率要求较高的嵌入式系统程序的编写。

扩展资料:

特有特点

  1. C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。

  2. C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。

  3. 不同的变量类型可以用结构体(struct)组合在一起。

  4. 只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。

  5. 部份的变量类型可以转换,例如整型和字符型变量。

  6. 通过指针(pointer),C语言可以容易的对存储器进行低级控制。

  7. 预编译处理(preprocessor)让C语言的编译更具有弹性

参考资料:百度百科-c语言

2.头文件,数据声明,函数的开始和结束标志;

1.头文件:

也称为包含文件或标题文件,一般放在一个C语言程序的开头,用#include″文件名″的格式,其中文件名是头文件名,一般用.h作为扩展名。

#include <stdio.h>

2.数据说明:

C语言中的数据分常量和变量两种。

3.常量:

有数值常量和符号常量两种。

4.数值常量:

可以分为整型常量、实型常量、浮点型常量和字符常量。

5.符号常量:

用一个标识符代表的一个常量,又称标识符形式的常量。

6.变量:

其值可以改变的量,变量名习惯上用小写字母表示。

7.标识符:

用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列。

8.标识符的命名规则:

C语言中标识符只能由字母、数字下划线三种字符组成,且第一个字符必须为字母或下划线。C语言是大小写敏感语言,即对大小写字母认为是不同的字符。C语言中标识符的长度随系统不同而字,如TURBO
C中取前8个字符,8个字符后面的字符会自动取消。

9.函数体开始和结束的标志

C语言函数体以(花括号)作为开始和结束的标志,由(函数头)和(函数体)两部分组成

10.C语言的各种声明

int f;   

//声明一个整形变量int *f;     //声明一个指针变量

int*f,g;    

//声明一个指针变量f和一个整形变量g

intf();  

//声明一个函数,返回整形数值

int(*f)();   

//声明一个函数指针,f是指针变量,返回int型

int*f();

//声明一个指针函数,f是函数,该函数返回int行指针

int *(*f)();    

//声明一个函数的指针,也可以说是一个只想函数地址变量,f为指针变量,只想这个函数,返回int型指针

int f[];   

//声明一个数组,

int*f[];

//声明一个数组指针,f为1个数组,数组里的数据存储的都是执行int型数据的指针。

int(*f[])();   

//声明一个函数指针数组,f是一个数组,数组里存储的数据都是指向一个函数的指针,这个指针指向的函数返回int型数据

int*(*f[])();   

//声明一个函数指针数组,f是一个数组,数组里存储的数据都是指向一个函数的指针,这个指向的函数返回int型指针数据(返回指向int数据的地址)

11.C语言之int *f()、int(*f)()、int *a[]、int (*a)[] 区别小记

链接:https://blog.csdn.net/qq_43543789/article/details/111149011

int *f()表示这个函数的功能是返回一个地址。

int(*f)()表示这是一个函数的指针。它要指向一个函数才能有用,指向一个函数之后可以用它来代替该函数。之后使用这个指针相当于使用该函数。

int *a[]是一个指针数组,表示数组中的每一个元素都是一个指针,可以指向一个int类型的数值。

int (*a)[]这是一个指向多维数组的指针变量。

3.算法的特性和表示方法:

特性:

  1. 输入:在算法中可以有零个或者多个输入
  1. 输出:在算法中至少有一个或者多个输出
  1. 有穷行:在执行有限的步骤之后,自动结束不会出现无限循环并且每一个步骤在可接受的时间内完成
  1. 确定性:算法的每一个步骤都具有确定的含义,不会出现二义性
  1. 有效性:算法的每一步都必须是有效的执行,并得到确定的结果

数据结构复习题(绪论)链接

表示方法:

算法的表示方法 算法的常用表示方法有如下三种:

  1. 使用自然语言描述算法
  2. 使用流程图描述算法
  3. 使用伪代码描述算法

4. C语言程序的结构特点:

1. 一个程序由一个或多个源程序文件组成。

一个规模较小的程序,往往只包括一个源程序文件,一个源程序文件中只有一个函数(main函数)
在一个源程序文件中可以包含3个部分

2. 函数是C程序的主要部分

程序的几乎全部工作都是由各个函数分别完成的,函数是C程序的基本单位,在设计良好的程序中,每个函数都用来实现一个或几个特点的功能。编写C程序的工作主要就是编写一个个函数
这种特点使得容易实现程序的模块化

3. 一个函数包括两部分

  1. 函数首部,即函数的第一行,包括函数名、函数类型、函数属性、函数参数(形式参数)名、参数类型。

  2. 函数体:声明部分和执行部分

4.函数总是从main函数开始的

无论main函数在整个程序中的位置如何(main函数可以放在程序的开头,也可以放在程序的结尾,或在一些函数之前,另一些函数之后)。

5. 程序中要求计算机的完成的操作是由函数中的C语句完成的。

如赋值,输入输出数据的操作都是由相应的C语句实现

6.在每个数据声明 和语句的最后必须有一个分号

分号是C语句的必要组成部分

7.C语言本身不提供输入输出语句

输入和输出的操作是由库函数scanf和printf函数来完成。

8.程序应当包含注释

一个好的、有使用价值的源程序都应当加上必要的注释,增加程序的可读性

在书中P9

C语言-数据类型、运算符与表达式

以上是关于C语言-C语言程序的结构的主要内容,如果未能解决你的问题,请参考以下文章

数据结构之八大排序算法(C语言实现)

c语言中怎样通过索引获取结构体成员的值

C语言中的结构体——struct

C语言基础知识入门

C语言理论知识

C语言初级链表(之有头节点的单向链表)