[quote][b]1.函数指针 [/b][/quote]
1.函数类型不能作为参数,但是函数名可以做函数,因为被自动转化为指针 成为“蜕变”
2.同理可以使用函数引用
3.函数指针使得C++程序可以使用别种语言所写的程序
4.函数指针参数取不同的值,就可以表现不同的行为,有很大的灵活性
5.函数代码是跨层的,所以通过函数指针可以访问本进程的,通过动态链接库的方式,就可以访问共享性质的其他进程
栈机制
1 运行时的内存分布
程序运行时,是由os装载到内存中的。一个程序在内存中被分为四个区域
代码区:程序代码
全局数据区:const常量 static变量 全局变量...
栈区:存放函数数据,动态反映了程序运行中的函数状态
堆区:存放动态内存
输入输出流
递归函数
1.有条件的调用自身
2.递归函数应该是有参数的。并且参数应该逼近停止条件
3.递归条件应该先测试
4.递归应该有终极语句
example 1
1.函数类型不能作为参数,但是函数名可以做函数,因为被自动转化为指针 成为“蜕变”
2.同理可以使用函数引用
void g();
typedef void ( *Fun )();
Fun &f = g;
3.函数指针使得C++程序可以使用别种语言所写的程序
4.函数指针参数取不同的值,就可以表现不同的行为,有很大的灵活性
5.函数代码是跨层的,所以通过函数指针可以访问本进程的,通过动态链接库的方式,就可以访问共享性质的其他进程
栈机制
1 运行时的内存分布
程序运行时,是由os装载到内存中的。一个程序在内存中被分为四个区域
代码区:程序代码
全局数据区:const常量 static变量 全局变量...
栈区:存放函数数据,动态反映了程序运行中的函数状态
堆区:存放动态内存
输入输出流
ifstream in("a.txt") //表示数流的来源“来自 a.txt“
ofstream out("b.txt") //表示目的地
getline(in,s) //获取一行放入到串S中
istringstream sin(s); //
sin>>a;
递归函数
1.有条件的调用自身
2.递归函数应该是有参数的。并且参数应该逼近停止条件
3.递归条件应该先测试
4.递归应该有终极语句
example 1
int gcd1(a, b)
{
if( b <=0 )
return a;
return gcd1(b, a%b);
}
int gcd2(int a, int b)
{
int temp;
for( ; b>0; )
{
temp = a;
a = b;
b = temp%b;
}
return a;
}