函数是具备特定功能的模块。能够说一个完整的程序实际上是由多个函数共同完成的。C语言的所有工做都是由程式各样的函数完成的,因此也把C语言称为函数式语言。使用模块化设计可能 使程序的层次结构清晰,全球程序的编写、阅读、调试。windows
就像你同样,说你从性别的角度分属于男仍是女?若是从肤色的角度分你是属于黄种人仍是白种人?若是从高低的角度分你是属于高的,仍是低的呢?因此说同一类事物能够从不一样的角度进行分类。函数也是同样从定义的角度分为库函数和自定义函数、从传递参数的角度分为有参函数与无参函数、从返回值的角度分为有返回值函数与无返回值函数。各类函数的区分请参照以下:模块化
变量的有效做用范围称为变量的做用域。按照有效做用范围能够把变量分为全局变量和局部变量两种。函数
全局变量是在函数外部定义的变量,也称全程变量,或外部变量。全局变量的做用域是从变量定义的位置开始,到所在源文件结束。全局变量的操做范围,属于其定义所在的源程序文件中。以下图所示:spa
如上图所示a、b、x、y、m、n这六个变量做用不一样,因此若是用全局变量,那么咱们最好使用a、b这两个变量定义时的方法,写在全部函数的上头。设计
局部变量也称为内部变量,指在函数内部定义的变量。或一对花括号“{}”里的变量,只在其定义的范围内起做用,范围以外没法访问。调试
举例:code
void fun(int a,int b) { int x,y; }
其中变量a、b、x、y都是局部变量,做用范围就是函数fun内。blog
经过下面程序段咱们来看下函数思惟的过程,以及函数的定义和使用过程。内存
/* Note:Your choice is C IDE */ #include "stdio.h" void check(int a);//声明函数 void main() { int num; printf("请输入一个数:"); scanf("%d",&num); check(num); } void check(int a) // 形参 { if(a%3==0&&a%4==0) //与 且 都 而且 printf("%d是3与4的倍数\n",num); //一名话可加可不加{} else printf("%d不是3与4的倍数\n",num); }
注意:参数传递作用域
1:只能实参传给形参
2:参数之间用逗号隔开
3:传递时个数要一致,类型要一致
在全局上自定义函数应该在主函数以前有一个说明,目的是告诉系统在主函数中要用到一个自定义函数,被主函数直接调用或间接调用。说明的时候就要写清楚这个函数的数据类型是什么,自变量有几个,都是什么数据类型的。
如:语句 void check(int a);
声明方式是:函数头+;
函数的定义的格式为:
void 函数名( )
{
说明部分;
语句部分;
}
无参无返回函数的调用格式是经过函数名来调用的.
无参函数的调用格式为:函数名();
针对案例当中须要咱们理解形式参数与实在参数说明以下:
(1) 形式参数是在定义函数时放在函数名称以后的括号中的参数。在函数未被调用时,系统不对形式参数分配内存单元。在函数被调用时,系统会马上给形式参数分配内存单元;调用结束后,再释放掉形式参数所占有的内存单元。所以,形式参数属于局部变量,其做用域限定在它所在的函数体内。这就不难理解在定义函数时为何要指定形参变量的数据类型了。
(2) 实在参数是一个具备肯定值的表达式。函数在调用时,要将实在参数赋给形参变量。好比代码中if(check(num)==1)调用子函数,这时num为实在参数,在这以前变量num是被赋过具体值的。在函数被调用后,系统会把num的值赋给形式参数a.
注:实在参数的个数及类型应与形式参数一致,赋值时多个参数之间的先后对应关系不变。
/* Note:Your choice is C IDE */ #include "stdio.h" #include "stdlib.h" #include "windows.h" int i,j; void gotoxy(int x,int y); int color(int c); void xin(){ color(12); gotoxy(28,8); printf("■");//8行28列 Sleep(500); gotoxy(26,7); printf("■"); Sleep(500); gotoxy(24,6); printf("■"); Sleep(500); gotoxy(22,6); printf("■"); Sleep(500); gotoxy(20,7); printf("■"); Sleep(500); gotoxy(20,8); printf("■"); Sleep(500); gotoxy(20,9); printf("■"); Sleep(500); gotoxy(22,10); printf("■"); Sleep(500); gotoxy(24,11); printf("■"); Sleep(500); gotoxy(26,12); printf("■"); Sleep(500); gotoxy(28,13); printf("■"); Sleep(500); gotoxy(30,12); printf("■"); Sleep(500); gotoxy(32,11); printf("■"); Sleep(500); gotoxy(34,10); printf("■"); Sleep(500); gotoxy(36,9); printf("■"); Sleep(500); gotoxy(36,8); printf("■"); Sleep(500); gotoxy(36,7); printf("■"); Sleep(500); gotoxy(34,6); printf("■"); Sleep(500); gotoxy(32,6); printf("■"); Sleep(500); gotoxy(30,7); printf("■"); for(i=7;i<10;i++){ gotoxy(22,i); printf("■"); } for(i=7;i<11;i++){ gotoxy(24,i); printf("■"); } for(i=8;i<12;i++){ gotoxy(26,i); printf("■"); } for(i=9;i<13;i++){ gotoxy(28,i); printf("■"); } for(i=7;i<10;i++){ gotoxy(34,i); printf("■"); } for(i=7;i<11;i++){ gotoxy(32,i); printf("■"); } for(i=8;i<12;i++){ gotoxy(30,i); printf("■"); } } void menu(){ for(i=0;i<58;i+=2){ gotoxy(i,1); color(5); printf("□"); gotoxy(i,26); printf("□"); } for(i=0;i<26;i++){ gotoxy(0,i); printf("□"); gotoxy(56,i); printf("□"); } for(i=2;i<56;i+=2){ for(j=2;j<26;j++){ gotoxy(i,j); color(3); printf("■"); } } } void people(){ color(12); for(i=12;i<16;i++){ gotoxy(6,i); printf("■"); } gotoxy(8,12); printf("■"); gotoxy(4,12); printf("■"); gotoxy(8,15); printf("■"); gotoxy(4,15); printf("■"); gotoxy(14,16); printf("■"); gotoxy(14,15); printf("■"); gotoxy(16,14); printf("■"); gotoxy(18,15); printf("■"); gotoxy(18,16); printf("■"); gotoxy(16,17); printf("■"); gotoxy(18,17); printf("■"); gotoxy(14,17); printf("■"); gotoxy(18,14); printf("■"); gotoxy(14,14); printf("■"); gotoxy(26,16); printf("■"); gotoxy(26,17); printf("■"); gotoxy(28,18); printf("■"); gotoxy(30,17); printf("■"); gotoxy(30,16); printf("■"); /*gotoxy(36,13); printf("■");*/ gotoxy(38,13); printf("■"); gotoxy(36,14); printf("■"); gotoxy(40,14); printf("■"); gotoxy(40,15); printf("■"); gotoxy(38,15); printf("■"); gotoxy(36,15); printf("■"); gotoxy(36,16); printf("■"); /*gotoxy(36,17); printf("■");*/ gotoxy(38,17); printf("■"); gotoxy(40,17); printf("■"); //y gotoxy(46,15); printf("■"); gotoxy(46,14); printf("■"); gotoxy(48,15); printf("■"); gotoxy(50,15); printf("■"); gotoxy(50,14); printf("■"); gotoxy(50,16); printf("■"); gotoxy(50,17); printf("■"); gotoxy(46,17); printf("■"); gotoxy(48,17); printf("■"); } void gotoxy(int x,int y){ COORD c; c.X=x; c.Y=y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c); } int color(int c){ SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),c); return 0; } void main() { system ( "mode con cols=60 lines=28" ); system("title 原来是由于"); menu(); gotoxy(28,0); system("pause"); xin(); for(i=24;i>=13;i--){ Sleep(300); gotoxy(28,i); color(12); printf("■"); gotoxy(28,i+1); color(3); printf("■"); } /*system("cls");*/ /*menu();*/ people(); gotoxy(10,0); system("pause"); }