1、函数名即是函数的入口地址
2、对指向函数的指针做算术运算是没有意义的
3、设计指向函数的指针可以更好地实现结构化程序设计方法。编写对一类数据进行不同处理的函数,增加函数的灵活性,可以编写一个通用的函数来实现各种专用功能
void process(int,int,int(*fun)(int,int));
1、一个C程序由一个或多个程序模块组成,每一个程序模块作为一个源程序文件。
2、一个源程序文件由一个或者多个函数以及其他内容组成。一个源程序文件是一个编译单位
3、函数不能够嵌套定义,但是函数可以嵌套调用
4、C语言中,实参向形参的数据传递是“值传递”,单向传递,不能由形参传回实参。在内存中,实参单元与形参单元是不同的单元
5、在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元。只有在发生函数调用时,函数的形参才被分配内存单元。调用结束后,形参所占内存空间也被释放
6、return语句后面的括号可以要也可以不要
7、C语言中,凡是不加类型说明的函数,自动按照整型处理
8、若函数值的类型和return语句中表达式的值不一致,则以函数的类型为准
9、函数的递归调用:可以考虑将先问题的规模缩小
//算法规模为2的n次方减去1
#include <stdio.h>
void move(char x,char y)
{
printf("%c——>%c\n",x,y);
}
void hanoi(int n,char one,char two,char three)
{
if(n==1)
move(one,three);
else{
hanoi (n-1,one,three,two);
move(one,three);
hanoi (n-1,two,one,three);
}
}
int main(void)
{
int m;
printf("Please input the number!\n");
scanf("%d",&m);
hanoi (m,'A','B','C');
return 0;
}