- 函数的基本知识
函数定义形式:
返回值类型 函数名(参数生命表)
{
声明和语句
} - 返回非整型的函数
不返回任何值 void
整型 int 外部变量
逆波兰表示法中,所有运算符都跟在操作数的后面。
如:
中缀表达式:(1-2)*(4+5)
逆波兰表达式:12-45+*
逆波兰表达式不需要括号,只需要知道运算符需要几个操作数就不会引起歧义
while(下一个运算符或操作数不是文件结束指示符)
if(是数)
将该数压入到栈中
else if
弹出所需数目的操作数
执行运算
将结果压入到栈中
else if(是换行运算符)
弹出并打印栈顶的值
else
出错作用域规则
名字的作用域指的是程序中可以使用的改名字的部分。
main{。。。。}
int sp=0;
double val[maxval]
void push(double f){…….}
double pop(void ){…….}
那么,在push与pop这两个函数中不需要进行任何声明就可以通过名字访问变量sp和val,但是这两个变量名不能再main函数中使用,push与pop函数也不能在main函数中
另一方面,如果要在外部变量的定义之前使用该变量,或者外部变量的定义与变量的使用不在同一个源文件中,则必须在相应的变量声明中强制 得使用关键字extern。
5.头文件
6.静态变量
static类型的内部变量是一种只能在某个特定函数中使用但一直占据存储空间的变量。
如果把函数声明成static类型,该函数名除了对该函数声明所在的文件可见外,其他文件都无法访问。
7.寄存器变量
register声明告诉编译器,他所在的变量在程序中使用频率较高。
形式:register int x;
register声明只适用于自动变量以及函数变量的形式参数。
8.程序块结构
函数内定义的变量x和函数外定义的变量x不冲突
9.初始化
对于外部变量与静态变量来说,初始化表达式必须是常量表达式,且只初始化一次
对于自动变量与寄存器变量,则在每次进去函数或程序块是都将被初始化。
10.递归
调用自身
快速排序
11.C预处理器
1)文件包含
#include“文件名”
#include <文件名>
2)宏替换
#define 名字 替换文本
3)条件包含
#ifndef HDR
#define EDR
/hdr.h文件的内容放在这里/
#endif