这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 软件与操作系统 » 递归与枚举学习笔记

共4条 1/1 1 跳转至

递归与枚举学习笔记

院士
2018-07-07 23:45:35     打赏


C语言的编译预处理有:宏定义、文件包含、条件编译三种:

宏定义:源程序中允许用一个标识符表示一个字符串,这个被定义的标识符即“宏名”,在程序中所有出现的宏名,均以定义中的字符串代换,这在程序中是用宏定义的命令完成的。

宏分为“无参数”和“有参数”的两种。

无参数宏的一般形式为:#define宏名+字符串。这里的字符串可以是常数、表达式、格式字符串等。

有参数宏的一般形式为:#define宏名(形参表)字符串。这里的形参表中的参数可以是一或多个,多个参数间用逗号分隔,字符串则是由形参表中的各参数组成的表达式。

文件包含:是将一个源文件的全部内容包含在另一个源文件中,其一般形式为:#include<文件名>或#include“文件名”。

这里用<>与用“”的区别是:前者在编译时,只在系统指定存放头文件的目录下查找该文件;后者则是编译时,先在当前的源文件所在的目录下查找该头文件,若未找到再到系统指定存放头文件的目录下去查找。

条件编译:可使编译器按不同的条件去编译程序中不同的部分,即通过条件编译,某些代码要在符合一定条件时才被编译,否则就不编译。条件编译主要有四种形式。

条件编译常用来编译不同平台上的同一个程序。可以避免文件重复包含带来的问题,减少代码的编译量。

预处理命令必须独占一行,且以“#”开始,末尾不加分号,所以它只是命令而不是语句。

 

枚举: 将变量所有可能的值都列举出来。当一个变量只可能取某些特定的值时,就可将该变量定义为枚举类型。

枚举类型的一般形式为:enum枚举名{元素名1,元素名2,,元素名n};

其中enum是保留字,指明为枚举,枚举名是一个标识符,其命名规则同变量名。元素名1-n列出该类型数据的所有可能的取值。

枚举类型变量定义的一般形式:enum枚举名变量名;

枚举类型变量定义的引用:枚举类型变量可以参与赋值和关系运算。枚举常量可以赋值给枚举类型变量,同类型的枚举变量之间可以相互赋值。

 

递归在执行过程中直接或间接调用自身的函数,称为递归函数。对其进行调用称为递归调用,递归调用必须在满足一定条件时结束。实现递归调用需要先分析问题是否可以采用这种形式来解决,当有了明确的定义,即可较好的编写递归函数。递归函数的结构简练,关键是找到找到适当的算法和终结条件,而终结条件往往是问题的最简单情形。递归的过程也是程序嵌套的过程。

这种函数通过简单的计算,就可处理如:阶乘、最大公约数和汉诺塔问题。

 

输入输出和字符(数字字符计数 字符和数值 转义字符  EOF  getchar函数)

基本的输入输出字符:字符输出函数putchar、字符输入函数getchar、格式输出函数printf、格式输入函数scanf。

getchar只能读取键盘输入的一个字符;它是无参函数,调用时后面的括号不能省略;常见于输入赋值时使用,在用户按下回车后开始读取,其一般形式是:

变量=getchar();

输入时空格、换行都作为字符读入。

printf的功能是按用户指定的格式,把指定的数据输出到屏幕上,其一般式为:

printf(格式控制字符串,输出表);

使用时要注意格式控制字符串和输出表中各项的数量、类型均要对应;计算顺序要明确。

转义字符主要用来表示不可视的打印控制字符和特定的功能字符,以“\”开头,后面跟一个或几个字符;转义字符只能小写,常用的有13个,可以方便的表示多种字符;若格式控制字符串中包含转义字符时,要特别注意其输出结果。





关键词: 论坛活动     C语言学习     递归与枚举     学习笔记    

管理员
2018-07-09 08:51:47     打赏
2楼

谢谢楼主分享


院士
2018-07-09 11:25:58     打赏
3楼

辛叔,递归的过程也是程序嵌套的过程。


院士
2018-07-09 21:08:26     打赏
4楼

谢谢jobs版主的帮助提示,我把这一条加进去了。


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]