C语言源程序是由:数据类型、常量与变量、数组、指针、字符串、文件输入/输出构成。
具体介绍:
1、数据类型
C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
2、常量与变量
常量其值不可改变,符号常量名通常用大写。变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。
3、数组
如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NULL作为数组的结束。要特别注意的是,方括内的索引值是从0算起的。
4、指针
指针不仅可以是变量的地址,还可以是数组、数组元素、函数的地址。通过指针作为形式参数可以在函数的调用过程得到一个以上的返回值,不同于return(z)这样的仅能得到一个返回值。
指针是一把双刃剑,许多 *** 作可以通过指针自然的表达,但是不正确的或者过分的使用指针又会给程序带来大量潜在的错误。
5、字符串
C语言的字符串其实就是以'\0'字符结尾的char型数组,使用字符型并不需要引用库,但是使用字符串就需要C标准库里面的一些用于对字符串进行 *** 作的函数。它们不同于字符数组。
6、文件输入/输出
在C语言中,输入和输出是经由标准库中的一组函数来实现的。在ANSI C中,这些函数被定义在头文件<stdioh>;中。
扩展资料:
语言特点
1、高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。
2、结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。
3、代码级别的跨平台:由于标准的存在,使得几乎同样的C代码可用于多种 *** 作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要进行硬件 *** 作的场合,优于其它高级语言。
4、使用指针:可以直接进行靠近硬件的 *** 作,但是C的指针 *** 作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针 *** 作的同时又增强了安全性,受到了一些用户的支持。
结构特点:
1、标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。
2、源程序中可以有预处理命令(include命令仅为其中的一种),预处理命令通常应放在源文件或源程序的前面。每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。
3、一个C语言源程序可以由一个或多个源文件组成。每个源文件可由一个或多个函数组成。一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。
基本组成:
1、先编译预处理,头文件。如:#include“stdioh”,即表示库函数中的输入输出函数。
2、用户函数自定义。
3、主函数,一个C语言程序中只能有一个主函数:main()。
4、函数体。当中包含数据类型的定义,赋值,和一系列的执行语句。
扩展资料:
C程序是由一组变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。
可以把函数看成一个“黑盒子”,你只要将数据送进去就能得到结果,而函数内部究竟是如何工作的,外部程序是不知道的。外部程序所知道的仅限于输入给函数什么以及函数输出什么。函数提供了编制程序的手段,使之容易读、写、理解、排除错误、修改和维护。
C程序中函数的数目实际上是不限的,如果说有什么限制的话,那就是,一个C程序中必须至少有一个函数,而且其中必须有一个并且仅有一个以main为名,这个函数称为主函数,整个程序从这个主函数开始执行。
参考资料来源:百度百科--C语言
实体,结构体,库,程序包,配置
1、实体:用于描述所设计系统的外部接口特性;即该设计实体对外的输入、输出端口数量和端口特性。
2、结构体:用于描述实体所代表的系统内部的结构和行为;它描述设计实体的结构、行为、元件及内部连接关系。
3、库:存放已经编译的实体、构造体、程序包集合和配置。
4、程序包:存放各设计模块可以共享的数据类型、常数、子程序库。
5、配置;实体对应多个结构体时,从与某个实体对应的多个结构体中选定一个作为具体实现。
程序设计语言的基本成分:数据成分、运算成分、控制成分、函数。
1.数据成分
程序语言的数据成分指的是一种程序语言的数据类型。数据对象总是对应着应用系统中某些有意义的东西,数据表示则指定了程序中值的组织形式。数据类型用于代表数据对象,同时还可用于检查表达始终对运算的应用是否正确。
数据是程序 *** 作的对象,具有存储类别、类型、名称、作用域和生存期等属性,使用时要为它分配内存空间。数据名称由用户通过标识符命名,标识符是由字母、数字和称为下划线的特殊符号“_”组成的标记;类型说明数据占用内存的大小和存放形式;存储类别说明数据在内存中的位置和生存期;作用域则说明可以使用数据的代码范围;生存期说明数据占用内存的时间范围。从不同角度可将数据进行不同的划分。
数据类型的分类如下:
(1)按程序运行过程中数据的值能否改变,可分为常量(整型常量、实型常量、字符常量、符号常量)和变量。
(2)按数据的作用域范围可分为全局量和局部量。
(3)按数据组织形式的不同可分为基本类型(整型、实型、字符型、枚举型)、构造类型(数组、结构、公用)、指针类型和空类型。
2 运算成分
大多数程序设计语言的基本运算可分为算术运算、关系运算、逻辑运算。为了确保运算结果的唯一性,运算符号规定优先级和结合性。
3 控制成分
控制成分指明语言允许表达的控制结构,程序员使用控制成分来构造程序中的控制逻辑。理论上已经表明,可计算问题的程序都可以用顺序、选择和循环这三种控制结构来描述。
4 函数
(1)任何函数都是由函数说明和函数体两部分组成。
(2)函数定义的一般格式如下:
返回值的类型函数名(形式参数表) //注释{
函数体
}
(3)函数调用的一般形式为:函数名(实参表)。
(4)传值的好处是传值调用不会改变调用函数实参变量的内容。
(5)函数体若调用自身则称为递归调用。
编译过程分为分析和综合两个部分,并进一步划分为词法分析、语法分析、语义分析、代码优化、存储分配和代码生成等六个相继的逻辑步骤。这六个步骤只表示编译程序各部分之间的逻辑联系,而不是时间关系。
编译过程既可以按照这六个逻辑步骤顺序地执行,也可以按照平行互锁方式去执行。在确定编译程序的具体结构时,常常分若干遍实现。对于源程序或中间语言程序,从头到尾扫视一次并实现所规定的工作称作一遍。每一遍可以完成一个或相连几个逻辑步骤的工作。
例如,可以把词法分析作为第一遍;语法分析和语义分析作为第二遍;代码优化和存储分配作为第三遍;代码生成作为第四遍。
反之,为了适应较小的存储空间或提高目标程序质量,也可以把一个逻辑步骤的工作分为几遍去执行。例如,代码优化可划分为代码优化准备工作和实际代码优化两遍进行。
扩展资料
从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。执行词法分析的程序称为词法分析程序或扫描器。
源程序中的单词符号经扫描器分析,一般产生二元式:单词种别;单词自身的值。单词种别通常用整数编码,如果一个种别只含一个单词符号,那么对这个单词符号,种别编码就完全代表它自身的值了。若一个种别含有许多个单词符号,那么,对于它的每个单词符号,除了给出种别编码以外,还应给出自身的值。
词法分析器一般来说有两种方法构造:手工构造和自动生成。手工构造可使用状态图进行工作,自动生成使用确定的有限自动机来实现。
编译程序的语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序,按该语言使用的语法规则分析检查每条语句是否有正确的逻辑结构,程序是最终的一个语法单位。编译程序的语法规则可用上下文无关文法来刻画。
参考资料来源:百度百科-编译程序
以上就是关于一个c语言程序是由什么组成的全部的内容,包括:一个c语言程序是由什么组成的、C语言程序结构的特点是什么由哪些基本部分组成、VHDL程序的基本组成部分有哪些各自的作用是什么各个部分有哪些规定等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)