一、       什么是函数

函数是具有特定功能的模块。可以说一个完整的程序其实是由多个函数共同完成的。C语言的全部工作都是由程式各样的函数完成的,所以也把C语言称为函数式语言。使用模块化设计可能 使程序的层次结构清晰,全球程序的编写、阅读、调试。

二、       函数的分类

就像你一样,说你从性别的角度分属于男还是女?如果从肤色的角度分你是属于黄种人还是白种人?如果从高低的角度分你是属于高的,还是低的呢?所以说同一类事物可以从不同的角度进行分类。函数也是一样从定义的角度分为库函数和自定义函数、从传递参数的角度分为有参函数与无参函数、从返回值的角度分为有返回值函数与无返回值函数。各种函数的区分请参照如下:

  1. 1.   库函数:系统已经定义好的函数,可以直接使用。如strlen,strcmp
  2. 2.   自定义函数:根据需要手动所写的函数。
  3. 3.   有参函数:函数头后的括号里有内容的函数。
  4. 4.   无参函数:函数头后括号里无内容的函数。
  5. 5.   返回值函数:函数最后有return语句的函数。
  6. 6.   无返回值函数:函数里没有return语句的函数。

三、       变量的应用

变量的有效作用范围称为变量的作用域。按照有效作用范围可以把变量分为全局变量和局部变量两种。

  1. 1.   全局变量

全局变量是在函数外部定义的变量,也称全程变量,或外部变量。全局变量的作用域是从变量定义的位置开始,到所在源文件结束。全局变量的操作范围,属于其定义所在的源程序文件中。如下图所示:

如上图所示a、b、x、y、m、n这六个变量作用不同,所以如果用全局变量,那么我们最好使用a、b这两个变量定义时的方法,写在所有函数的上头。

  1. 2.   局部变量

局部变量也称为内部变量,指在函数内部定义的变量。或一对花括号“{}”里的变量,只在其定义的范围内起作用,范围之外无法访问。

举例:

void fun(int a,int b)          

{ 

int x,y;

}

其中变量a、b、x、y都是局部变量,作用范围就是函数fun内。

四、       函数思维

通过下面程序段我们来看下函数思维的过程,以及函数的定义和使用过程。

/* 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%==&&a%==)   //与   且  都 并且    

    printf("%d是3与4的倍数\n",num);     //一名话可加可不加{}

    else

    printf("%d不是3与4的倍数\n",num);

}

注意:参数传递

1:只能实参传给形参

2:参数之间用逗号隔开

3:传递时个数要一致,类型要一致

  1. 1.   函数的说明

在全局上自定义函数应该在主函数之前有一个说明,目的是告诉系统在主函数中要用到一个自定义函数,被主函数直接调用或间接调用。说明的时候就要写清楚这个函数的数据类型是什么,自变量有几个,都是什么数据类型的。

如:语句  void check(int a);

声明方式是:函数头+;

  1. 2.   无参无返回值函数的定义

函数的定义的格式为:

void  函数名( )

{

说明部分;

语句部分;

}

  1. 3.   函数的调用

无参无返回函数的调用格式是通过函数名来调用的.

无参函数的调用格式为:函数名();

  1. 4.   扩展内容:形式参数和实在参数

针对案例当中需要我们理解形式参数与实在参数说明如下:

(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();
gotoxy(,);
printf("■");//8行28列
Sleep();
gotoxy(,);
printf("■");
Sleep();
gotoxy(,);
printf("■");
Sleep();
gotoxy(,);
printf("■");
Sleep();
gotoxy(,);
printf("■");
Sleep();
gotoxy(,);
printf("■");
Sleep();
gotoxy(,);
printf("■");
Sleep();
gotoxy(,);
printf("■");
Sleep();
gotoxy(,);
printf("■");
Sleep();
gotoxy(,);
printf("■");
Sleep();
gotoxy(,);
printf("■");
Sleep();
gotoxy(,);
printf("■");
Sleep();
gotoxy(,);
printf("■");
Sleep();
gotoxy(,);
printf("■");
Sleep();
gotoxy(,);
printf("■");
Sleep();
gotoxy(,);
printf("■");
Sleep();
gotoxy(,);
printf("■");
Sleep();
gotoxy(,);
printf("■");
Sleep();
gotoxy(,);
printf("■");
Sleep();
gotoxy(,);
printf("■");
for(i=;i<;i++){
gotoxy(,i);
printf("■");
}
for(i=;i<;i++){ gotoxy(,i);
printf("■");
}
for(i=;i<;i++){ gotoxy(,i);
printf("■");
}
for(i=;i<;i++){
gotoxy(,i);
printf("■");
}
for(i=;i<;i++){
gotoxy(,i);
printf("■");
}
for(i=;i<;i++){
gotoxy(,i);
printf("■");
}
for(i=;i<;i++){
gotoxy(,i);
printf("■");
}
}
void menu(){
for(i=;i<;i+=){
gotoxy(i,);
color();
printf("□");
gotoxy(i,);
printf("□");
}
for(i=;i<;i++){
gotoxy(,i);
printf("□");
gotoxy(,i);
printf("□");
}
for(i=;i<;i+=){
for(j=;j<;j++){
gotoxy(i,j);
color();
printf("■");
}
}
}
void people(){
color();
for(i=;i<;i++){
gotoxy(,i);
printf("■");
}
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
/*gotoxy(36,13);
printf("■");*/
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
/*gotoxy(36,17);
printf("■");*/
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
//y
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
printf("■");
gotoxy(,);
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 ;
}
void main()
{ system ( "mode con cols=60 lines=28" );
system("title 原来是因为");
menu();
gotoxy(,);
system("pause");
xin();
for(i=;i>=;i--){
Sleep(); gotoxy(,i);
color();
printf("■");
gotoxy(,i+);
color();
printf("■"); }
/*system("cls");*/
/*menu();*/
people(); gotoxy(,);
system("pause");
}

最新文章

  1. Nodejs的安装及配置
  2. C/C++:提升_头文件的使用
  3. Windows下使用命令行启动php
  4. Android中Bitmap, Drawable, Byte,ID之间的转化
  5. IPv6 相关的工作简介
  6. history对象back()、forward()、go()
  7. jquery 获取选中的文字.当前光标所在的位置等jquery-fieldselection 插件
  8. Python学习笔记一,输入输出
  9. windows 10 install oracle 12c error:[ INS-30131 ]
  10. xcconfig 文件配置文件 问题
  11. Unity C# 多态 委托 事件 匿名委托 Lambda表达式 观察者模式 .NET 框架中的委托和事件
  12. 搭建phabricator代码审核工具
  13. python复杂网络库networkx:算法
  14. Python Matplotlib.pyplot plt 中文显示
  15. tqdm介绍及常用方法
  16. 【Zuul】Zuul过滤器参考资料
  17. css 控制文字超出部分显示省略号
  18. Android H5调起原生微信或支付宝支付
  19. iOS - App Extension 整体总结
  20. MySQL&lt;数据库的高级操作&gt;

热门文章

  1. CMake编译如何解决[-Werror,-Wformat-security] 问题
  2. oracle11g安装时出现程序未找到文件解决办法
  3. netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源
  4. IM推送保障及网络优化详解(一):如何实现不影响用户体验的后台保活
  5. 【mysql5.7】远程无法连接设置
  6. Java学习笔记-spring整合mybatis
  7. 对比Hashtable,HashMap,TreeMap,谈谈对HashMap的理解
  8. PHP弱类型总结
  9. java虚拟机-GC-新生代的GC、老年代的GC
  10. linux c库函数大全